Як використовувати розпізнавання мовлення Google від YouTube без завантаження відео на YouTube?


15

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

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

Ідеальний сценарій: Існує програма, яку я можу запустити зі свого робочого столу, щоб отримати стенограму з цих відео, і вона має рівну або кращу якість, ніж YouTube, і має часові коди, схожі на SRT або XML, які створює YouTube [ Як отримати субтитри YouTube ].

Прийнятний сценарій: Є кілька хитрощів, які я можу зробити, щоб змусити YouTube транскрибувати відео, будь то приватне чи публічне, і незважаючи на тривалість.

Виконаний сценарій: є бібліотека або щось, що я можу використовувати для кодування власної програми. Мені добре з C # і гаразд із C ++ (Але я дуже вважаю за краще C #).


2
дякую за зв’язок - з глухої точки зору, дуже цікаво почути, як це працює ...
studiohack

@studiohack жоден каламбур не призначений.
287352

LOL, я навіть цього не усвідомлював! : P
studiohack

Відповіді:


10

Google впровадив у Chrome Chrome Web Speech API (як для розпізнавання та синтезу мовлення), який ви можете використовувати, якщо ви розробник. Це те, що YouTube використовує для створення тісних підписів для деяких відео. Можливо, ви знайдете код для взаємодії з ним.

Потік даних, ймовірно, буде таким:

Відеофайл => витягнути і перетворити аудіо => надіслати його в Google API => отримати текст => записати в SRT.

EDIT: Здається, не існує офіційної сторінки API, окрім специфікації W3C. Ось тут ще посилання:

Ці приклади стосуються використання API всередині Chrome, але ви можете безпосередньо запитувати пошуковий механізм розпізнавання мовлення Google в Інтернеті. Наприклад, Джаспер , персональний помічник розпізнавання мови для Raspberrry Pi, дозволяє вам вибрати Google як двигун розпізнавання мови.


Дякую! Я обов'язково спробую це. Якщо це можна зробити швидко (за винятком часу на обробку), я можу це втілити у свій продукт. Яка була б користь.
287352

Іншим джерелом API може бути середовище NodeWebkit
Джон Дворак

1

Існує інструмент під назвою "autosub" (див. Agermanidis / autosub на github), який робить саме це, хоча і використовує старіший API мови Google. Інструмент використовує ffmpeg для виведення аудіо у файли FLAC, а потім відправляє файли FLAC в Google для транскрипції. Він створює файл SRT або VTT.

Точність частково низька через старіший API Google. Існує новіший API ("Cloud Speech REST API" за адресою https://cloud.google.com/speech/docs/apis ). Цей API досить простий, і в якийсь момент я збирався роздрібнити автозавантаження, щоб використовувати це.

Альтернативою є завантаження на YouTube та завантаження файлу VTT після завершення підпису. Ускладненням цього є те, що YouTube створює дуже дрібні підписи (наприклад, пару слів), а не, наприклад, речення. Це ускладнює перевірку заголовків під час сканування вручну.


1

Найпростіший спосіб такий: перейдіть до google docs, відкрийте новий текстовий документ і виберіть із інструментів "голосовий набір", а потім відтворіть свою стрічку. Так. Це ЛЕГКО! (і підтримує кілька мов)

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.