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

15

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

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

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

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

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

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

Ответы:

10

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

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

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

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

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

foucdeg
источник
Спасибо! Я обязательно попробую это. Если это можно сделать быстро (за исключением времени обработки), то я могу внедрить это в свой продукт. Какое это было бы благо.
287352
Другим источником API может быть среда NodeWebkit
Джон Дворжак
1

Есть инструмент под названием «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

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

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

Zibri
источник