15

У меня есть много лекционного видео контента, для которого я хотел бы иметь субтитры. YouTube автоматически генерирует субтитры для видео при определенных условиях (эти условия все еще остаются для меня загадкой).

Я хотел бы иметь возможность использовать эту технологию распознавания речи за пределами YouTube. Я не хочу загружать каждое видео только для того, чтобы получить расшифровку (слишком много времени), и, кроме того, я не думаю, что YouTube сделает это для видео продолжительностью более 30 минут (большинство из них), далее я не думайте, что это подойдет для непубличных видео (что является проблемой, потому что это премиум-контент, предназначенный для продажи).

Идеальный сценарий: есть программа, которую я могу запустить со своего рабочего стола, чтобы получить стенограмму этих видео, и она имеет такое же или лучшее качество, чем у YouTube, и имеет временные коды, подобные SRT или XML, которые генерирует YouTube [ Как получить субтитры на YouTube ].

Приемлемый сценарий. Я могу сделать несколько уловок, чтобы заставить YouTube транскрибировать видео, как для частного, так и для публичного просмотра, несмотря на продолжительность.

Реализуемый сценарий: есть библиотека или что-то, что я могу использовать для написания своей собственной программы. Я хорошо с C # и хорошо с C++ (но я действительно предпочитаю C #).

3 ответа3

10

Google внедрил API веб-речи (как для распознавания, так и для синтеза речи) в Chrome, который вы можете использовать, если вы разработчик. Это то, что YouTube использует для создания субтитров для некоторых видео. Может быть, вы найдете код для взаимодействия с ним.

Поток данных, вероятно, будет:

Видеофайл => извлечь и преобразовать аудио => отправить его в Google API => получить текст => записать в СТО.

РЕДАКТИРОВАТЬ: кажется, нет официальной страницы API, кроме спецификации W3C. Так что вот еще ссылки:

В этих примерах рассказывается об использовании API изнутри Chrome, но вы можете напрямую запросить онлайн-механизм распознавания речи Google. Например, Джаспер, личный помощник по распознаванию речи для Raspberrry Pi, позволяет вам выбрать Google в качестве механизма распознавания речи.

1

Существует инструмент под названием "autosub" (см. Agermanidis /autosub на github), который делает именно это, хотя и использует более ранний Google voice API. Инструмент использует ffmpeg для обрезки аудио в файлы FLAC, а затем отправляет файлы FLAC в Google для транскрипции. Создает файл SRT или VTT.

Точность низкая отчасти из-за более старого Google API. Существует более поздний API ("API Cloud Speech REST" по адресу https://cloud.google.com/speech/docs/apis ). Этот API довольно прост, и в какой-то момент я собирался использовать autosub для его использования.

Альтернативой является загрузка на YouTube и загрузка файла VTT после завершения создания титров. Сложность в том, что YouTube создает очень мелкие надписи (например, пару слов), а не, например, предложение. Это затрудняет проверку подписей при выполнении сканирования вручную.

1

Самый простой способ заключается в следующем: перейдите в Google Docs, откройте новый текстовый документ и выберите один из инструментов "голосовой набор", а затем воспроизведите свою ленту. Да. Это так просто! (и поддерживает несколько языков)

В противном случае вы можете использовать локальную веб-страницу с HTML5 следующим образом:https://www.labnol.org/software/add-speech-recognition-to-website/19989/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .