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





