У меня есть много лекционного видео контента, для которого я хотел бы иметь субтитры. YouTube автоматически генерирует субтитры для видео при определенных условиях (эти условия все еще остаются для меня загадкой).
Я хотел бы иметь возможность использовать эту технологию распознавания речи за пределами YouTube. Я не хочу загружать каждое видео только для того, чтобы получить расшифровку (слишком много времени), и, кроме того, я не думаю, что YouTube сделает это для видео продолжительностью более 30 минут (большинство из них), далее я не думайте, что это подойдет для непубличных видео (что является проблемой, потому что это премиум-контент, предназначенный для продажи).
Идеальный сценарий: есть программа, которую я могу запустить со своего рабочего стола, чтобы получить расшифровку этих видео, и она имеет такое же или лучшее качество, чем YouTube, и имеет временные коды, подобные SRT или XML, которые генерирует YouTube [ Как получить субтитры на YouTube ].
Приемлемый сценарий. Я могу сделать несколько уловок, чтобы заставить YouTube транскрибировать видео, как для частного, так и для публичного просмотра, несмотря на продолжительность.
Реализуемый сценарий: есть библиотека или что-то, что я могу использовать для написания своей собственной программы. Я хорошо с C # и хорошо с C ++ (но я действительно предпочитаю C #).
Ответы:
Google внедрил API веб-речи (как для распознавания, так и для синтеза речи) в Chrome, который вы можете использовать, если вы разработчик. Это то, что YouTube использует для создания субтитров для некоторых видео. Может быть, вы найдете код для взаимодействия с ним.
Поток данных, вероятно, будет:
Видеофайл => извлечь и преобразовать аудио => отправить его в Google API => получить текст => записать в СТО.
РЕДАКТИРОВАТЬ: кажется, нет официальной страницы API, кроме спецификации W3C. Так что вот еще ссылки:
В этих примерах рассказывается об использовании 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/
источник