Как использовать Google распознавание речи на YouTube без загрузки видео на YouTube?

18135
fredsbend

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

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

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

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

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

15
спасибо за ссылку - с глухой точки зрения, очень интересно услышать, как это работает ... studiohack 10 лет назад 2
@studiohack не каламбур. fredsbend 10 лет назад 0
LOL, я даже не осознавал этого! :П studiohack 10 лет назад 0

3 ответа на вопрос

10
foucdeg

Google implemented the Web Speech API (both for speech recognition and synthesis) into Chrome, which you can use if you are a developer. This is what YouTube uses to generate close captioning on some videos. Maybe you'll find code to interact with it.

The data flow would probably be:

A video file => extract and convert audio => send it to Google API => get the text => write into a SRT.

EDIT: there doesn't seem to be an official API page, other than the W3C spec. So here are more links:

These examples are about using the API from inside Chrome, but you can directly query Google's online speech recognition engine. For instance, Jasper, a speech-recognizing personal assistant for Raspberrry Pi, lets you choose Google as the speech recognition engine.

Спасибо! Я обязательно попробую это. Если это можно сделать быстро (за исключением времени обработки), то я могу внедрить это в свой продукт. Какое это было бы благо. fredsbend 8 лет назад 0
Другим источником API может быть среда NodeWebkit John Dvorak 6 лет назад 0
1
Dirk Grunwald

Существует инструмент под названием «autosub» (см. Agermanidis / autosub на github), который делает именно это, хотя и использует более ранний речевой API Google. Инструмент использует 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
Zibri

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

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

Похожие вопросы