Этот репозиторий содержит набор скриптов для создания полностью автономной системы расшифровки аудиозаписей на вашем компьютере. Решение позволяет не только превращать речь в текст, но и автоматически разделять его по говорящим (диаризация), что идеально подходит для анализа лекций, интервью и совещаний.
В основе лежат мощные 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-канал: "Умный Дом Инвестора"