Как использовать Google распознавание речи на YouTube без загрузки видео на YouTube?
У меня есть много лекционного видео контента, для которого я хотел бы иметь субтитры. YouTube автоматически генерирует субтитры для видео при определенных условиях (эти условия все еще остаются для меня загадкой).
Я хотел бы иметь возможность использовать эту технологию распознавания речи за пределами YouTube. Я не хочу загружать каждое видео только для того, чтобы получить расшифровку (слишком много времени), и, кроме того, я не думаю, что YouTube сделает это для видео продолжительностью более 30 минут (большинство из них), далее я не думайте, что это подойдет для непубличных видео (что является проблемой, потому что это премиум-контент, предназначенный для продажи).
Идеальный сценарий: есть программа, которую я могу запустить со своего рабочего стола, чтобы получить стенограмму этих видео, и она имеет такое же или лучшее качество, чем YouTube, и имеет временные коды, подобные SRT или XML, которые генерирует YouTube [ Как получить субтитры на YouTube].
Приемлемый сценарий. Я могу сделать несколько уловок, чтобы заставить YouTube транскрибировать видео, как для частного, так и для публичного просмотра, несмотря на продолжительность.
Реализуемый сценарий: есть библиотека или что-то, что я могу использовать для написания своей собственной программы. Я хорошо с C# и хорошо с C++ (но я действительно предпочитаю C#).
3 ответа
Google внедрил API веб-речи (как для распознавания, так и для синтеза речи) в Chrome, который вы можете использовать, если вы разработчик. Это то, что YouTube использует для создания субтитров для некоторых видео. Может быть, вы найдете код для взаимодействия с ним.
Поток данных, вероятно, будет:
Видеофайл => извлечь и преобразовать аудио => отправить его в Google API => получить текст => записать в СТО.
РЕДАКТИРОВАТЬ: кажется, нет официальной страницы API, кроме спецификации W3C. Так что вот еще ссылки:
- http://www.sitepoint.com/experimenting-web-speech-api/
- http://www.smashingmagazine.com/2014/12/05/enhancing-ux-with-the-web-speech-api/
В этих примерах рассказывается об использовании API изнутри Chrome, но вы можете напрямую запросить онлайн-механизм распознавания речи Google. Например, Джаспер, личный помощник по распознаванию речи для Raspberrry Pi, позволяет вам выбрать Google в качестве механизма распознавания речи.
Существует инструмент под названием "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 создает очень мелкие надписи (например, пару слов), а не, например, предложение. Это затрудняет проверку подписей при сканировании вручную.
Самый простой способ заключается в следующем: перейдите в Google Docs, откройте новый текстовый документ и выберите один из инструментов "Голосовой набор", а затем воспроизведите свою ленту. Да. Это так просто! (и поддерживает несколько языков)
В противном случае вы можете использовать локальную веб-страницу с HTML5 следующим образом: https://www.labnol.org/software/add-speech-recognition-to-website/19989/