Как сделать транскрибацию видео: файл, ссылка на YouTube и субтитры

Как получить текст из видео: загрузить файл на сайт или боту в Telegram либо отправить ссылку на YouTube, VK Видео или RuTube, а потом забрать результат с таймкодами или субтитрами SRT. Плюс бесплатные способы уменьшить файл, если он не помещается в лимит.

Voicepad10 минут чтения

Я делаю Voicepad, и по опыту сложность с видео обычно не в распознавании, а в том, как довезти ролик до сервиса: файл слишком тяжёлый, ссылку некуда вставить, а субтитры нужны отдельным файлом. Ниже по шагам: как сделать транскрибацию видео из файла и по ссылке, как забрать текст с таймкодами и SRT и что делать, если видео не помещается в лимит.

Что нужно на входе: файл или ссылка

Распознавание речи работает со звуковой дорожкой, картинка ему не нужна. Поэтому на входе подойдёт один из двух вариантов.

  • Файл: ролик с телефона, запись созвона, скачанная лекция. Его загружают на сайт или отправляют боту в Telegram.
  • Ссылка: ролик уже опубликован. Бот принимает ссылки на YouTube, VK Видео, RuTube и TikTok. На сайте ссылку можно вставить после входа через Telegram, там подходят ещё Vimeo, Дзен, OK и Twitch, если у ролика известна длительность. Скачивать видео не нужно.
Что у вас естьКуда отправитьОграничения
Короткий файл, хочется просто попробоватьСайт без входа3 расшифровки в день, файл до 50 МБ, по одной за раз; у записи длиннее 3 минут расшифруются первые 3 минуты
Файл до 200 МБ на компьютере или телефонеСайт после входа через TelegramЗапись до 3 часов, минуты с того же баланса, что в боте
Видео, кружочек или аудио уже в TelegramБот @Voicepad_botФайл до 20 МБ, запись до 3 часов
Ролик на YouTube, VK Видео, RuTube или в TikTokСсылка боту или на сайт после входаЗапись до 3 часов
Файл больше 200 МБСначала извлечь звук, потом на сайтКак это сделать, ниже в разделе про большие видео

После входа через Telegram баланс у сайта и бота общий: 15 бесплатных минут каждый месяц, дальше пакеты 60 минут за 199 ₽, 300 минут за 690 ₽ и 1000 минут за 1990 ₽. Оплата картой через Tribute, купленные минуты не сгорают, списывается только реальная длительность записи. Речь распознаёт ElevenLabs Scribe v2, язык записи определяется автоматически, выбирать его не нужно. Что именно бесплатно, подробно разобрано в инструкции транскрибация аудио в текст онлайн.

Видео с компьютера или телефона

  1. Откройте транскрибацию видео прямо в браузере. Для первой пробы регистрация не нужна.
  2. Загрузите файл. На том же экране можно записать голос с микрофона, а после входа через Telegram и вставить ссылку на видео.
  3. Дождитесь текста и заберите его: скопируйте или скачайте в TXT, SRT или DOCX.

Без входа сайт работает как проба: три расшифровки в день, файл до 50 МБ, по одной за раз, а у записи длиннее 3 минут расшифруются первые 3 минуты. Этого хватает, чтобы проверить, как распознаётся именно ваш звук: лектор у доски, созвон с плохим микрофоном, интервью на улице. Для полной записи войдите через Telegram: лимит файла вырастает до 200 МБ, длина записи до 3 часов, становятся доступны ссылки, а минуты списываются с того же баланса, что и в боте.

Из Telegram то же самое делается через бота @Voicepad_bot: перешлите ему видео, кружочек или аудиофайл. Здесь ограничение жёстче, 20 МБ на файл. Это лимит не наш, а Telegram: в документации Bot API сказано, что бот может скачать файл размером не больше 20 МБ. Поэтому длинную запись удобнее загружать на сайт, а боту отправлять короткие ролики и ссылки.

Какой файл у вас на руках

Сайт и бот принимают аудио и видеофайлы, но перед загрузкой полезно понимать, что именно вы отправляете.

  • Видео с iPhone. Apple рекомендует снимать в форматах HEIF и HEVC, это режим «Высокоэффективный». В настройках «Камера», «Форматы» можно выбрать «Наиболее совместимый», и новые видео будут в H.264. По словам Apple, HEVC сжимает лучше H.264, поэтому такие файлы занимают меньше места при том же качестве картинки. Если файл всё равно не проходит по размеру, вытащите из него звук, как описано ниже.
  • Записи Zoom. При локальной записи Zoom сохраняет видео MP4 и отдельный аудиофайл M4A (так описано в справке Иллинойсского университета). Для расшифровки берите M4A: речь в нём та же, а картинки нет, поэтому он легче видео.
  • Всё остальное. Если файл в редком формате не принимается или весит слишком много, проще всего вытащить из него звук. Как это сделать бесплатно, разобрано ниже.

Видео по ссылке: YouTube, VK, RuTube

Если ролик уже опубликован, скачивать его не нужно. Лимит 20 МБ касается файлов, которые идут через Telegram, а для ссылки важна длительность записи: до 3 часов. Есть два способа.

  • В боте. Откройте @Voicepad_bot в Telegram и пришлите ссылку обычным сообщением. Подходят ролики с YouTube, VK Видео, RuTube и TikTok.
  • На сайте. Вставить ссылку можно только после входа через Telegram: кроме этих четырёх площадок там подходят Vimeo, Дзен, OK и Twitch, если у ролика известна длительность. Без входа на сайте доступны запись голоса и загрузка файла.

Честно про YouTube: если у ролика есть субтитры, текст можно бесплатно посмотреть прямо там. В описании видео есть кнопка «Показать текст видео», расшифровка прокручивается вместе с роликом, а нажатие на строку переносит к нужному моменту. Автоматические субтитры YouTube поддерживают и русский язык, но сам YouTube предупреждает, что из-за произношения, акцента, диалекта или посторонних шумов в них бывают ошибки, и советует авторам такие субтитры проверять.

Voicepad пригодится, когда субтитров у ролика нет, когда важно, кто что сказал (реплики размечены по спикерам), когда нужен файл SRT или DOCX, а не текст в окне плеера, или когда из записи надо сделать краткое содержание, список задач или пост. Подробнее про каждую площадку: видео с YouTube в текст и конспект с главами и видео из VK Видео и RuTube в текст.

Текст с таймкодами и субтитры SRT

Бот присылает текст с таймкодами и метками спикеров. Под каждой расшифровкой в боте доступны краткое содержание, список задач, статья, пост, вопросы к записи и экспорт в DOCX, TXT и SRT. На сайте результат можно скопировать или скачать. Какой формат для чего:

ФорматГде естьДля чего
TXTСайт и ботПростой текст: вставить в заметки, письмо или документ
DOCXСайт и ботДокумент для Word или Google Docs: отредактировать и отправить коллегам
SRTСайт и ботСубтитры: загрузить к ролику на YouTube или поправить вручную

SRT устроен просто, поэтому его легко проверить глазами. Каждая реплика состоит из порядкового номера, строки с временем начала и конца в формате часы:минуты:секунды,миллисекунды (например, 00:00:04,160) и самого текста, а между репликами стоит пустая строка. YouTube принимает SRT с оговорками: только базовый вариант без оформления и только в кодировке UTF-8. Открыть и исправить такой файл можно в любом текстовом редакторе.

Перед публикацией проверьте имена, названия и термины: исправить слово в SRT проще, чем перезаливать видео с вшитыми субтитрами. Подробнее о формате и загрузке в инструкции субтитры SRT из видео и аудио.

Когда видео слишком большое

Лимиты такие: 20 МБ на файл в боте, 50 МБ на сайте без входа и 200 МБ после входа через Telegram. Если ваш файл больше, есть несколько выходов, от самого простого к самому трудоёмкому.

Отправить ссылку вместо файла

Если видео уже лежит на YouTube, VK Видео, RuTube или в TikTok, размер файла не важен, важна только длительность (до 3 часов): отправьте ссылку боту или вставьте её на сайте после входа.

Вытащить звук через FFmpeg

FFmpeg бесплатный (лицензия LGPL, отдельные необязательные модули под GPL) и работает из командной строки. Первая команда отбрасывает видео и копирует звуковую дорожку без перекодирования, поэтому выполняется быстро и без потери качества:

ffmpeg -i lekciya.mp4 -vn -c:a copy lekciya.m4a

Ключ -vn отключает видео, -c:a copy копирует звук как есть. Документация FFmpeg предупреждает, что такое копирование срабатывает не всегда. Если команда ответит ошибкой, перекодируйте звук:

ffmpeg -i lekciya.mp4 -vn -c:a aac -ac 1 -b:a 64k lekciya.m4a

Здесь -c:a aac выбирает встроенный AAC-кодер FFmpeg, -ac 1 сводит звук в моно, а -b:a 64k задаёт битрейт 64 кбит/с. Размер легко посчитать: 64 кбит/с равны 8 КБ в секунду, то есть около 0,5 МБ в минуту. Час записи займёт примерно 29 МБ, три часа около 86 МБ, так что даже самая длинная запись помещается в лимит сайта после входа, 200 МБ. В 20 МБ для бота при таком битрейте влезает около 40 минут, при 32 кбит/с около 80 минут. Я бы начинал с 64k и снижал битрейт, только если файл не помещается. Таймкоды считаются от начала записи, а длина дорожки при извлечении остаётся прежней, поэтому SRT, сделанный по звуку, обычно ложится на исходное видео без сдвига. Перед публикацией всё же сверьте пару реплик в начале и в конце.

Без командной строки: VLC

Бесплатный плеер VLC с открытым исходным кодом умеет то же самое через меню. По инструкции kod.ru в русской версии это выглядит так (в разных версиях VLC названия пунктов могут немного отличаться): откройте «Медиа», затем «Конвертировать/сохранить», нажмите «Добавить», выберите видео и снова нажмите «Конвертировать/сохранить». В поле «Профиль» выберите аудиопрофиль MP3 (его название начинается со слова Audio), укажите папку и имя файла с окончанием .mp3 и запустите конвертацию. Готовый файл загружайте на сайт или отправляйте боту.

Если нужен именно видеофайл: HandBrake

Когда хочется сохранить картинку, например чтобы потом наложить субтитры, видео можно пережать в бесплатном HandBrake, он работает на Windows, macOS и Linux. Нажмите «Open Source» и выберите ролик, в группе пресетов General возьмите вариант Very Fast с низким разрешением, например Very Fast 480p30, и нажмите «Start». В документации HandBrake у этого пресета указаны очень быстрое кодирование, небольшой размер файла и среднее качество картинки, для расшифровки этого достаточно. Таймкоды в SRT записаны во времени, а не в кадрах, поэтому смена частоты кадров их обычно не сдвигает, но пару реплик всё равно стоит сверить.

Частые вопросы

Можно ли сделать транскрибацию видео бесплатно?

Да, с ограничениями. На сайте без входа доступны 3 расшифровки в день, но у записи длиннее 3 минут распознаются только первые 3 минуты. В боте и на сайте после входа через Telegram каждый месяц начисляется 15 бесплатных минут. Если у ролика на YouTube уже есть субтитры, текст можно бесплатно открыть в самом YouTube кнопкой «Показать текст видео».

Какой максимальный размер видеофайла?

Боту в Telegram можно отправить файл до 20 МБ, это ограничение самого Telegram. На сайте без входа принимаются файлы до 50 МБ, после входа через Telegram до 200 МБ. Длина записи до 3 часов. Если файл больше, извлеките из него звук: час речи в моно с битрейтом 64 кбит/с весит около 29 МБ.

Нужно ли скачивать видео с YouTube, чтобы получить текст?

Нет. Отправьте ссылку боту @Voicepad_bot: он принимает ролики с YouTube, VK Видео, RuTube и TikTok длиной до 3 часов. На сайте ссылку можно вставить после входа через Telegram, там подходят ещё Vimeo, Дзен, OK и Twitch.

Как получить субтитры SRT из видео?

После распознавания скачайте файл SRT: на сайте он лежит рядом с TXT и DOCX, в боте экспорт доступен под каждой расшифровкой. YouTube принимает SRT в базовом варианте в кодировке UTF-8, поэтому файл можно загрузить к ролику, предварительно проверив имена и термины.

Хранит ли Voicepad запись после расшифровки?

Нет, видео и аудио удаляются сразу после распознавания. Готовые расшифровки в боте хранятся 30 дней, команда /delete удаляет их сразу.

Источники

  1. Telegram Bot API: getFile
  2. Apple: медиафайлы HEIF и HEVC
  3. University of Illinois: локальная запись Zoom (англ.)
  4. YouTube: как посмотреть расшифровку видео
  5. YouTube: автоматические субтитры
  6. YouTube: поддерживаемые форматы субтитров (англ.)
  7. FFmpeg: документация ffmpeg (англ.)
  8. FFmpeg: кодеки (англ.)
  9. FFmpeg: лицензия (англ.)
  10. VideoLAN: VLC
  11. kod.ru: как извлечь звук из видео
  12. HandBrake
  13. HandBrake: Quick start (англ.)
  14. HandBrake: Official presets (англ.)

Расшифруйте видео

Файл до 50 МБ можно загрузить без входа, до 200 МБ после входа через Telegram. Ссылки на ролики принимает бот и сайт после входа.

Загрузить видео Открыть @Voicepad_bot