Пример расшифровки (транскрибации) видео в текст Python-скриптом

Оцените статью

Рассмотрим пример расшифровки видео в текст (транскрибация), причем внешние коммерческие сервисы мы не будем использовать, а все сделаем у себя локально. Python-cкрипт получается очень простой и использует уже обученные модели для распознавания текста, а главное, что они совершенно бесплатные и неплохо справляются с поставленной задачей.

Подготовка рабочего окружения для запуска Python в виртуальном окружении

Установка зависимостей для проекта

# apt-get update
# apt-get upgrade
# apt-get install curl wget mc aptitude
# aptitude install python3-all-venv python3-pip

Запуск виртуального окружения

# mkdir /opt/video-2-text
# cd /opt/video-2-text/
# python3 -m venv venv
# source ./venv/bin/activate

Python-скрипт для расшифровки видео в текст

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

Для тестирования модели возьмем небольшой фрагмент из курса по машинному обучения.

Извлечем аудиодорожку из видеофайла

Установка необходимых библиотек

# pip3 install moviepy

Извлечем аудиодорожку

#!./venv/bin/python3
from moviepy import VideoFileClip

video = VideoFileClip("video-2-text.mp4")
audio_path = "video-2-text.wav"
video.audio.write_audiofile(audio_path, codec='pcm_s16le')

Преобразуем аудиофайл в текстовый файл с использованием библиотеки whisper и сначала установим необходимые компоненты

# aptitude install ffmpeg
# pip3 install moviepy pydub torch
# pip install --upgrade --force-reinstall git+https://github.com/openai/whisper.git

Преобразуем аудиофайл в текст

#!./venv/bin/python3
import whisper

model = whisper.load_model("small")  # или "small", "medium", "large"
result = model.transcribe("video-2-text.wav")
print(result["text"])


output_text_path = "transcript.txt"
output_file = open ("video-2-text.wav", "w", encoding="utf-8")
output_file.write(result["text"])
output_file.close()

Языковая модель будет загружена автоматически и сохранена в виртуальном окружении проекта. Как вы видите языковых моделей пять, но использовать лучше последние три small, medium и large. Они как понятно из названия отличаются размером, но естественно не только размером, но и качеством распознавания речи.

МодельРазмерСкоростьТочностьОЗУ
tiny~80 МБОчень быстроНизко~1 ГБ
base~150 МББыстроНиже среднего~1.5 ГБ
small~500 МБСреднеСредне~3 ГБ
medium~1.5 ГБМедленноВысоко~6 ГБ
large~3 ГБОчень медленноОчень высоко~10+ ГБ

Результат обработки моделью small

Приветствую вас на курсе по машинам обучения. Сегодня у нас с вами водное занятие, на котором мы поговорим о том, что такое машинное обучение, а также обсудим некоторые о
бъединенционные моменты курса. План урока у нас следующий. Сначала мы с вами обсудим, о чем вообще наш курс, что такое машинное обучение и для каких задачек его можно испо
льзовать. Затем мы с вами поговорим о структуре курса. Обсудим чуть детальнее, чему именно мы хотим вас научить, а также обсудим, как именно мы планируем контролировать по
лученные вами знания. Давайте начнем с вопроса, а что такое машинное обучение, а для этого рассмотрим несколько задачек, которые можно было бы решать с использованием МЛ.
Начнем с довольно простой задачи. Представьте, что у вас есть пружинка и набор грузиков. И вы хотите понять, насколько пружинка у вас растянется под действием этих грузико
в. Одного грузика, двух, трех и более. Ответ на этот вопрос в 1660 году открыл Роберт Бук, просто проведя серию экспериментов с пружинками и грузиками разный масс.

Результат обработки моделью medium

Приветствую вас на курсе по машинному обучению. Сегодня у нас с вами водное занятие, на котором мы поговорим о том, что такое машинное обучение, а также обсудим некоторые
организационные моменты курса. План урока у нас следующий. Сначала мы с вами обсудим о чем вообще наш курс, что такое машинное обучение и для каких задачек его можно испо
льзовать. Затем мы с вами поговорим о структуре курса. Обсудим чуть детальнее, чему именно мы хотим вас научить, а также обсудим как именно мы планируем контролировать пол
ученные вами знания. Давайте начнем с вопроса, а что такое машинное обучение, а для этого рассмотрим несколько задачек, которые можно было бы решать с использованием мл. Н
ачнем с довольно простой задачи. Представьте, что у вас есть пружинка и набор грузиков. И вы хотите понять, насколько пружинка у вас растянется под действием этих грузиков
. Одного грузика, двух, трех и более. Ответ на этот вопрос в 1660 году открыл Роберт Бук, просто проведя серию экспериментов с пружинками и грузиками разной массы.

Результат обработки моделью large

Приветствую вас на курсе по машинному обучению. Сегодня у нас с вами вводное занятие, на котором мы поговорим о том, что такое машинное обучение, а также обсудим некоторы
е организационные моменты курса. План урока у нас следующий. Сначала мы с вами обсудим, о чем вообще наш курс, что такое машинное обучение и для каких задачек его можно ис
пользовать. Затем мы с вами поговорим о структуре курса. Затем обсудим чуть детальнее, чему именно мы хотим вас научить, а также обсудим, как именно мы планируем контролир
овать полученные вами знания. Давайте начнем с вопроса, а что такое машинное обучение, а для этого рассмотрим несколько задачек, которые можно было бы решать с использован
ием ML. Начнем с довольно простой задачи. Представьте, что у вас есть пружинка и набор грузиков. И вы хотите понять, насколько пружинка у вас растянется под действием этих
грузиков. Одного грузика, двух, трех и более. Ответ на этот вопрос в 1660 году открыл Роберт Бук, просто проведя серию экспериментов с пружинками и грузиками разной массы.

Related Posts

Отправка сообщений из Zabbix в VK Teams

Так получилось, что этих самых мессенджеров развелась уже целая куча и только ленивый не написал свой и в текущем моем проекте в качестве корп-мессенджера используется VK Teams. Встроенного плагина для…

Корпоративная инфраструктура на базе RedOS

В результате работы над проектом по внедрению Российского ПО у меня накопилось несколько статей описывающих пошаговое внедрение RedOS в компании и я с удовольствием им поделюсь. Вдруг кому пригодится.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Пример расшифровки (транскрибации) видео в текст Python-скриптом

Пример расшифровки (транскрибации) видео в текст Python-скриптом

Отправка сообщений из Zabbix в VK Teams

Отправка сообщений из Zabbix в VK Teams

Как гарантировать запуск сервиса после полной инициализации сети в Linux (systemd)

Как гарантировать запуск сервиса после полной инициализации сети в Linux (systemd)
Настройка SoftEther VPN Bridge

Установка и настройка Zabbix-Proxy

Установка и настройка Zabbix-Proxy
NetPlan работа с сетевыми мостами