Этот репозиторий содержит набор скриптов для создания полностью автономной системы расшифровки аудиозаписей на вашем компьютере. Решение позволяет не только превращать речь в текст, но и автоматически разделять его по говорящим (диаризация), что идеально подходит для анализа лекций, интервью и совещаний.
В основе лежат мощные open-source модели OpenAI Whisper и WhisperX, что гарантирует высокую точность и полную приватность ваших данных.
- Два режима работы:
- Простая транскрибация (Whisper): быстрое получение сплошного текста из аудио. Идеально для монологов, лекций.
 - Транскрибация с диаризацией (WhisperX): получение структурированного диалога с разметкой по спикерам (
SPEAKER_01,SPEAKER_02). Отлично подходит для совещаний, интервью. 
 - Приватность: все ваши аудиозаписи и текстовые расшифровки остаются на вашем компьютере. Никакие данные не передаются третьим лицам.
 - Бесплатно и Open Source: проект построен на бесплатных инструментах. Вы не платите за подписку или поминутное распознавание.
 - Высокая точность: используется модель 
large-v3от OpenAI, которая является одной из самых точных для распознавания речи, включая русский язык. - Ускорение на GPU: решение оптимизировано для работы с видеокартами NVIDIA, что многократно ускоряет обработку.
 - Простая установка: для каждого режима предусмотрены bash-скрипты, которые автоматизируют настройку окружения.
 
| Критерий | Метод 1: Простая транскрибация (Whisper) | Метод 2: Диа-ри-за-ци-я (WhisperX + Docker) | 
|---|---|---|
| Задача | Получить сплошной текст из аудио (лекция, доклад) | Разделить речь на реплики разных спикеров (совещание) | 
| Результат | ...текст одного спикера текст другого... | 
[время] SPEAKER_01: текст...[время] SPEAKER_02: текст... | 
| Технологии | Python, PyTorch, Whisper | Docker, NVIDIA Container Toolkit, WhisperX | 
| Сложность | Простая настройка в виртуальном окружении Python | Требует Docker и токен Hugging Face. Установка автоматизирована. | 
| Когда использовать | Для быстрой расшифровки монологов, лекций, личных заметок. | Для анализа диалогов, интервью, совещаний, создания протоколов. | 
Этот метод идеально подходит для быстрой расшифровки аудиозаписей без необходимости разделять речь по спикерам.
Для автоматической установки всех необходимых компонентов (Python, FFmpeg, NVIDIA Drivers, CUDA, PyTorch) используется специальный bash-скрипт.
- 
Клонируйте репозиторий:
git clone https://github.com/empenoso/offline-audio-transcriber cd offline-audio-transcriber - 
Сделайте скрипт установки исполняемым:
chmod +x whisper_transcribe_setup.sh
 - 
Запустите скрипт:
./whisper_transcribe_setup.sh
Скрипт обновит систему, установит драйверы NVIDIA (если необходимо), CUDA, создаст виртуальное окружение
.venvи установит все Python-библиотеки.Примечание: Если скрипт установит драйверы NVIDIA, может потребоваться перезагрузка компьютера.
 
- 
Поместите ваши аудиофайлы (поддерживаются
.mp3,.wav,.m4a) в любую папку, например,audio/. - 
Активируйте виртуальное окружение:
source .venv/bin/activate - 
Запустите скрипт
whisper_transcribe.py:- 
Простой запуск (поиск аудио в текущей папке):
python3 whisper_transcribe.py
 - 
Указание параметров вручную (папка с аудио, модель, папка для результатов):
python3 whisper_transcribe.py ./audio large ./results
 
 - 
 
После выполнения скрипта в выходной папке вы найдете:
.txtфайл для каждой аудиозаписи с полным текстом..srtфайл для каждой аудиозаписи с субтитрами и таймкодами.all_transcripts.txt— один файл, содержащий все расшифровки подряд.
Этот метод использует Docker для решения проблем с зависимостями и позволяет не только транскрибировать аудио, но и определять, кто из спикеров говорил.
- Docker и NVIDIA GPU: для работы требуется установленный Docker и видеокарта NVIDIA с актуальными драйверами.
 - Токен Hugging Face: для диаризации необходим токен доступа.
- Получите его в настройках профиля Hugging Face.
 - Примите условия использования моделей pyannote/speaker-diarization-3.1 и pyannote/segmentation-3.0.
 
 
Специальный скрипт автоматизирует установку Docker, NVIDIA Container Toolkit и настройку рабочего пространства.
- 
Сделайте скрипт исполняемым:
chmod +x whisperx_diarization_setup.sh
 - 
Запустите установщик:
./whisperx_diarization_setup.sh
Скрипт установит и настроит Docker, скачает необходимый образ WhisperX и создаст структуру папок (
audio,results) и файл конфигурацииconfig.env. - 
Настройте
config.env: Откройте файлconfig.envи вставьте ваш токен Hugging Face:HF_TOKEN=your_token_here - 
Перезагрузка: После установки может потребоваться перезагрузка, чтобы применились права для группы
docker.sudo reboot
 
- 
Поместите аудиофайлы в папку
audio/. - 
Запустите скрипт-оркестратор:
- Для проверки системы:
python3 whisperx_diarization.py --check
 - Для обработки всех файлов в папке 
audio/:python3 whisperx_diarization.py
 
 - Для проверки системы:
 
Результаты для каждого аудиофайла будут сохранены в отдельной подпапке внутри results/. Вы получите структурированный протокол встречи.
Было (обычный Whisper):
...да, я согласен с этим подходом но нужно учесть риски которые мы не обсудили например финансовую сторону вопроса и как это повлияет на сроки я думаю нам стоит вернуться к этому на следующей неделе...
Стало (WhisperX с диаризацией):
[00:01:15.520 --> 00:01:19.880] SPEAKER_01: Да, я согласен с этим подходом, но нужно учесть риски, которые мы не обсудили.
[00:01:20.100 --> 00:01:22.740] SPEAKER_02: Например, финансовую сторону вопроса и как это повлияет на сроки?
[00:01:23.020 --> 00:01:25.900] SPEAKER_01: Именно. Я думаю, нам стоит вернуться к этому на следующей неделе.
Если у вас возникли проблемы с установкой, запуском или есть предложения по улучшению, пожалуйста, создайте Issue в этом репозитории.
Автор: Михаил Шардин
Онлайн-визитка: shardin.name
Telegram-канал: "Умный Дом Инвестора"