Как перевести видео из ютуба в текст

Поисковики предлагают очень много решений этой задачи. Платные сервисы справляются достаточно хорошо.

Минусы бесплатных сервисов:

  • Ограничение по длине речи.
  • Долгое время перевода.
  • Низкое качество (точность текста и речи).

Цель этой статьи – показать именно бесплатный способ. При этом получить качественный результат на выходе. На мой взгляд, самые главные преимущества предложенного ниже варианта – это довольно качественное распознавание разных голосов и точное определение таймкодов. Используется модель Whisper. Это модель машинного обучения для распознавания и транскрипции речи, созданная компанией OpenAI и выпущенная с открытым исходным кодом в сентябре 2022 года.

У Ютуба есть встроенная функция транскрибации. Разверните описание видео. Снизу кнопка:

Как перевести видео из ютуба в текст

Но качество текста очень-очень не очень. Многие слова неверно переведены. Также нет разделения на голоса:

Как перевести видео из ютуба в текст

В этой статье предлагается техническое решение. Необязательно быть программистом, достаточно точно следовать по шагам. Думаю, любой справится.

Пошаговое руководство

1. Зайдите на свой гугл драйв (нужна гугл почта).

2. Установите приложение Colaboratory.

Как перевести видео из ютуба в текст

Colaboratory (или просто Colab) – сервис от Google, который позволяет писать и выполнять код Python в браузере.

3. Нажмите на большую кнопку «+» в левом верхнем углу и выберите Google Colaboratory. Открывается страница с Colab-документом. Это такой же файл, как любой ваш гугл документ или гугл таблица. Поэтому этот файл автоматически сохранится на вашем гугл диске.

4. В меню (в верхней части документа) выберите «Среда выполнения» -> «Сменить среду выполнения». Откроется окно, в нем выберите T4 GPU.

Как перевести видео из ютуба в текст

5. В поле (для ввода кода) введите команду:

pip install stable-ts pytube

и нажмите слева иконку play. Время выполнения - около 1 минуты.

6. В поле (для ввода кода) введите команду:

from pytube import YouTube URL = "https://www.youtube.com/watch?v=a50qT9bW2Qo" # адрес нужной вам страницы FILENAME = "youtube.mp4" yt = YouTube(URL) audio = yt.streams.filter(only_audio=True).first() audio.download(filename=FILENAME) import stable_whisper model = stable_whisper.load_model("medium") result = model.transcribe(FILENAME, language="ru", fp16=False, verbose=True) result.to_tsv("result.tsv") # TSV result.save_as_json("result.json") # JSON

Важно: не забудьте поменять адрес нужного вам ролика в переменной URL.

Нажмите слева иконку play. Время выполнения зависит от длительности ролика. Видео длительностью 1 час 30 минут переводилось около 10 минут. Это при условии, что вычисления выполнялись в среде T4 GPU. Иногда ресурсы заняты (если мы говорим про бесплатный тариф в Colab), тогда такой размер файла обрабатывается на обычном CPU, и процесс занимает около 2 часов.

7. В панели слева кликните правой кнопкой мыши и выберите "Обновить". Появятся файлы result.tsv и result.json. Их можно скачать (наведите курсор на название файла, справа появится иконка с тремя точками).

Как перевести видео из ютуба в текст

Качество вполне хорошее. Но лучше бегло пробежаться и проверить на явные ляпы.

193000 195200 А, инвалид, что вы теперь скажете? 196240 197740 Простите. 199560 200500 Закон есть закон. 201120 201660 Пожалуйста, 201960 202180 садитесь. 202840 203680 Большое спасибо. 204380 207220 Ах ты зрячий! Ты сейчас будешь слепой.​

Если у вас возникли трудности с запуском или вопросы, напишите в комментарии. Постараюсь помочь.

Этим способом можно вытягивать текст из любых видео/аудио, не только из Ютуба. Можно почитать в статье, в ней подробнее описания шагов и больше скриншотов.

2 комментария

ох, е, выглядит сложно

Расшарил вам свой документ. Попробуйте просто сделать копию на свой диск (точно так же как любой гугл документ). Если будут сложности, пишите сюда, постараюсь помочь
https://colab.research.google.com/drive/194S-d9Rf_rBQtefTmKzD0QasnO9DmpV-?usp=sharing