Пример расшифровки (транскрибации) видео в текст 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 году открыл Роберт Бук, просто проведя серию экспериментов с пружинками и грузиками разной массы.

Похожие записи

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

В современном мире DevOps и контейнеризации знание инструментов для работы с Docker и Kubernetes стало обязательным для любого администратора или разработчика. В этой статье мы подробно, шаг за шагом, рассмотрим…

Настройка Konsole (эмулятор терминала от проекта KDE)

Konsole на мой взгляд самый лучший эмулятор терминала для Linux, но и его можно настроить для улучшения usability чем сейчас мы и займемся. Konsole — это удобный эмулятор терминала в…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования