Как бесплатно превращать аудио в текст: мой опыт с нейросетями и причем тут "шёпот"

Нужно расшифровать запись лекции, совещания или видеоурока. Знакомая ситуация? Ручная расшифровка отнимает часы, а платные сервисы либо дороги, либо имеют жёсткие ограничения. Я прошёл этот путь и готов поделиться готовым бесплатным решением, а с вас лайк и подписка, если ещё этого не сделали.
В поисках готового решения, или Как я открыл для себя «шепот» (Whisper)
Сперва я искал готовые решения для своего макбука и наткнулся на приложение MacWhisper. Скажу сразу, что это тупиковый путь. В обзорах данной программулины пишут, что у неё есть бесплатная версия, но почему-то умалчивают она не позволяет сохранить результат.
Всякие онлайн сервисы тоже путь в никуда. Обычно дают расшифровать не больше 10 минут, а дальше подписка. Такое ощущение, что скоро вся жизнь будет по подписке... но знаете что удивительно? Оказывается OpenAI выкатила в свободный доступ свою модель для автоматического распознавания речи (ASR) Whisper!

Дальше я начал копать в этом направлении и вот к чему пришел в итоге. Вышеупомянутая программа MacWhisper не что иное, как просто графическая оболочка для языковой модели Whisper от OpenAI, а графический интерфейс тут вовсе не обязателен. Всё прекрасно работает прямо из командной строки в терминале.
Что такое WhisperX и чем он отличается от Whisper
Кроме того, сообщество разработчиков создало надстройку WhisperX, которая устраняет недостатки оригинального Whisper, позволяя работать с длинными аудио или видеофайлами (подкасты, лекции, интервью), существенно увеличив скорость обработки и добавляя точные таймкоды для монтажа видео, создания субтитров и автоматической разбивки по дикторам (особенно полезно для записи интервью и совещаний).
Оригинальный же Whisper можно использовать если нужна простая транскрипция коротких аудио и не требуются точные таймкоды на уровне слов с идентификацией говорящих.
Практическое руководство: Как начать использовать Whisper/WhisperX
Не нужно быть программистом, чтобы запустить собственную нейросеть Whisper/WhisperX, однако для её использования понадобится командная строка (Terminal). Сперва дам общие рекомендации, а после конкретно для пользователей macOS на процессорах Apple M1 и новее.
Шаг 1: Установка Python и PIP
Убедитесь, что у вас установлен Python (рекомендуется версия 3.8 или новее). Часто pip (менеджер пакетов Python) уже установлен вместе с ним. Проверить это можно, открыв Терминал и введя:
python --version
pip3 --version
Шаг 2: Установка Whisper (базовый вариант)
Всё делается буквально одной командой (при условии, что python и менеджер пакетов pip уже установлены):
pip install openai-whisper
Как использовать (пример):
whisper "ваш_аудиофайл.mp3" --model medium --language ru --output_dir "папка_с_результатом"
- --model: Выбор модели (tiny, base, small, medium, large). Чем больше, тем точнее, но медленнее. Для русского хорошо подходит medium.
- --language Russian: Указывает язык, что ускоряет и улучшает точность.
- --output_dir: Папка, куда сохранится результат.
Что на выходе? Файл с текстом (.txt) и файл с субтитрами (.srt или .vtt) с таймкодами.
Если командная строка пугает, для Whisper существуют графические интерфейсы (GUI). Например, Buzz — отличное бесплатное приложение, которое внутри себя использует Whisper. Оно покажет вам кнопки, выбор файлов и красивое окно с результатом (лично мне без надобности).
Шаг 3: Установка WhisperX (предпочтительный вариант)
Это тот самый "гвоздь программы" для ваших задач с лекциями и конференциями. Для WhisperX готовых графических приложений практически нет, так как это более новая и сложная система. Его сила раскрывается именно в командной строке.
ссылка на проект https://github.com/m-bain/whisperX
Установка WhisperX:
pip install whisperx
Базовый сценарий использования:
whisperx "ваш_аудиофайл.mp3" --model medium --language ru --output_dir "папка_с_результатом"
Результат получается быстрее, чем при использовании whisper и с более точными таймкодами.
Продвинутый сценарий использования с определением дикторов:
whisperx "ваш_аудиофайл.mp3" --model medium --language ru --diarize --output_dir "папка_с_результатом"
--diarize — это ключевой флаг, который запускает идентификацию спикеров. В первый раз он попросит вас авторизоваться на Hugging Face Hub (это бесплатно), чтобы скачать модель pyannote.
Что получите на выходе? Текст, разбитый по репликам с пометками [SPEAKER_00], [SPEAKER_01] и точными таймкодами. Идеально для расшифровки интервью и совещаний.
WhisperX на macOS. mlx_whisper для процессоров Apple M1 и более свежих моделей
Для процессоров Apple M1 и более свежих, вместо WhisperX лучше использовать специально адаптированную версия mlx_whisper.
ссылка на проект: https://github.com/ml-explore/mlx-examples/tree/main/whisper
- Установите Xcode из магазина приложений;
- Установите Homebrew:
- Если на вашем Mac не установлен Python 3 и ffmpeg, выполните следующее действие:
- Для установки pip3, воспользуйтесь командой:
- установка whisperx и mlx_whisper:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python
brew install ffmpeg
python3 -m pip install --upgrade pip
Добавьте путь к установленному pip (в моем случае путь был такой):
echo 'export PATH="$PATH:/Users/dreamer/Library/Python/3.9/bin"' >> ~/.bash_profile
pip install whisperx
pip install mlx-whisper
Пример использования whisperx по распознаванию речи из видео (001.mp4) с моделью large-v2 на ARM процессоре от Apple:
whisperx ~/Desktop/001.mp4 --model large-v2 --language ru --compute_type int8 --device cpu
Тот же самый файл (001.mp4), но с использованием whisperx с аналогичной языковой моделью large-v2:
mlx_whisper ~/Desktop/001.mp4 --model mlx-community/whisper-large-v2-mlx --language ru --output-format all
Пара полезных ссылок для самостоятельного обучения:
- Статья про тонкую настройку Whisper для многоязычного ASR https://huggingface.co/blog/fine-tune-whisper
- Версия openai/whisper-large-v3, точно настроенная для лучшей поддержки русского языка https://huggingface.co/antony66/whisper-large-v3-russian









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