Используйте YouTube в качестве набора речевых данных для распознавания речи.

Вопрос или проблема

DNNs — это огромные алгоритмы, требующие большого объема данных, особенно двунаправленные LSTM. Для моделей распознавания речи существует нехватка голосовых корпусов для конкретных языков/акцентов. Однако YouTube является огромной библиотекой для этого.

Мне нужно использовать какой-то скрипт/программное обеспечение, которое автоматически будет загружать видео с YouTube (возможно, только аудио) и соответствующие субтитры, а затем разбивать их на клипы по 20 секунд, чтобы их можно было использовать в качестве обучающего речевого корпуса.

Есть ли способ скачать субтитры с YouTube? И given an audio and the scripts, как мне разбить аудио на клипы по 20 секунд и чтобы эти клипы были включены в транскрипцию?

yt-dlp (или youtube-dl или другой форк youtube-dl)

  1. Может скачивать видео и/или аудио и/или субтитры и/или другие данные с YouTube и/или многих других сайтов.
  2. Легко выбирать видео, на которые вы хотите нацелиться. Обратите внимание на такие опции, как “–match-filter”, чтобы фильтровать по почти любому атрибуту, и “–batch-file”, который загрузит список URL-адресов из указанного файла.
  3. Легко получать большую часть информации без скачивания видео. Например, смотрите “–skip-download”.
  4. Множество опций, специально предназначенных для субтитров: смотрите ниже. Особенно обратите внимание на то, что вы можете различать автоматические субтитры, которые создаются машиной, и файлы, которые были загружены человеком, что не означает, что они точные или созданы человеком, просто они не были размещены в этом месте YouTube.
  5. Вы можете отказаться от видео и оставить только аудио. Например, смотрите “–extract-audio”.

Опции субтитров:

--write-subs                     Записать файл субтитров
--no-write-subs                  Не записывать файл субтитров (по умолчанию)
--write-auto-subs                Записать файл автоматически сгенерированных субтитров
                                 (псевдоним: --write-automatic-subs)
--no-write-auto-subs             Не записывать автоматически сгенерированные субтитры
                                 (по умолчанию) (псевдоним: --no-write-automatic-subs)
--list-subs                      Список доступных субтитров для каждого видео.
                                 Симуляция, если не используется --no-simulate
--sub-format FORMAT              Формат субтитров, принимает форматы
                                 предпочтений, например: "srt" или
                                 "ass/srt/best"
--sub-langs LANGS                Языки субтитров для загрузки (может
                                 быть регулярным выражением) или "all", разделенные запятыми.
                                 (Например: --sub-langs "en.*,ja") Вы можете префиксировать
                                 код языка знаком "-" для исключения его
                                 из запрашиваемых языков. (Например:
                                 --sub-langs all,-live_chat) Используйте --list-subs
                                 для получения списка доступных языковых тегов

FFmpeg

  1. С небольшим умом вы должны быть в состоянии создать отрезки аудио произвольной длины и соответствующие им субтитры. Например, смотрите эту страницу, описывающую, как удалить первые пять минут видеофайла и удалить первые пять минут соответствующего файла субтитров.
  2. Исключительно хорошо подходит для конвертации медиа в нужный вам кодек.
  3. При правильной настройке (что не всегда очевидно) хорошо создает файлы с точной длиной времени.
  4. Быстрый. Бесплатный. С открытым исходным кодом. Мультиплатформенный. Расширяемый.

Этот вопрос три года назад, так что я предполагаю, что автор уже нашел много вариантов. Но, возможно, это поможет другим людям.

Ответ или решение

Использование YouTube в качестве набора данных для распознавания речи: детальное руководство

Распознавание речи — это сложный и ресурсоемкий процесс, особенно если речь идет о глубоких нейронных сетях, таких как двунаправленные LSTM. Одна из распространенных проблем в этой области заключается в недостатке голосовых корпусов для отдельных языков и акцентов. Однако YouTube предлагает огромный библиотечный ресурс, который можно использовать для создания качественного обучающего набора данных.

Шаг 1: Загрузка аудио и субтитров с YouTube

Для автоматизации процесса загрузки видео из YouTube, а также соответствующих субтитров, можно использовать такие инструменты, как yt-dlp или его предшественник youtube-dl. Эти утилиты поддерживают командную строку и предлагают массу возможностей для настройки загрузки.

Команды для загрузки:

  • Для загрузки только аудио:

    yt-dlp --extract-audio --audio-format mp3 <URL видео>
  • Для загрузки субтитров:

    yt-dlp --write-subs --sub-langs en --skip-download <URL видео>
  • Для автоматической генерации субтитров, если они не были загружены:

    yt-dlp --write-auto-subs <URL видео>

Эти команды позволят вам получить аудиотрек и сопутствующие субтитры в формате, удобном для дальнейшей обработки.

Шаг 2: Сегментация аудио и сопоставление с текстом

Для обрезки загруженных аудиофайлов на 20-секундные клипы, а также для синхронизации этих клипов с текстом из субтитров, вы можете использовать FFmpeg. Этот мощный инструмент позволяет обрезать и конвертировать аудио с точностью до миллисекунд.

Пример команды для обрезки:

ffmpeg -i input.mp3 -ss 00:00:00 -t 00:00:20 -c copy clip1.mp3

Где:

  • -i input.mp3 — входной файл.
  • -ss — время начала.
  • -t — длительность сегмента.

Сопоставление сегментов с субтитрами

Для ассоциации обрезанного звука с его субтитрами можно воспользоваться Python скриптом, который будет автоматически обрабатывать файлы .srt (или другого формата) и корректно создавать новые субтитры для каждого 20-секундного сегмента. В скрипте будут заданы диапазоны времени для каждого сегмента, что обеспечит точную синхронизацию.

Заключение

Используя сочетание yt-dlp и FFmpeg, вы сможете создать качественный обучающий корпус для моделей распознавания речи, получив аудио и текстовые данные из видео на YouTube. Этот процесс требует определенных технических навыков, но предоставляет огромные возможности для обучения специфическим языковым моделям.

Не забывайте знакомиться с политиками использования данных платформ и соблюсти авторские права при использовании загруженного контента. Это не только соответствует этическим стандартам, но и избегает потенциальных правовых последствий.

Оцените материал
Добавить комментарий

Капча загружается...