mirror of
https://github.com/empenoso/offline-audio-transcriber.git
synced 2026-04-19 08:30:30 +05:00
99 lines
7.7 KiB
Markdown
99 lines
7.7 KiB
Markdown
# Локальная система распознавания речи на базе OpenAI Whisper
|
||
|
||
Этот репозиторий содержит набор скриптов для создания полностью автономной системы расшифровки аудиозаписей (лекций, докладов, совещаний) на вашем компьютере. Решение использует мощную open-source модель **OpenAI Whisper**, что гарантирует высокую точность и полную приватность ваших данных.
|
||
|
||
## 🚀 Что делает проект?
|
||
|
||
Проект позволяет вам превратить аудиофайлы в текст локально, без отправки данных в облако и без необходимости платных подписок. Это достигается за счет использования модели OpenAI Whisper и скриптов, которые автоматизируют процесс установки, настройки и массовой обработки файлов.
|
||
|
||
## ✨ Почему это полезно?
|
||
|
||
* **Приватность:** все ваши аудиозаписи и текстовые расшифровки остаются на вашем компьютере. Никакие данные не передаются третьим лицам.
|
||
* **Бесплатно:** проект построен на бесплатных open-source инструментах. Вы не платите за подписку или поминутное распознавание.
|
||
* **Высокая точность:** используется модель `large-v3` от OpenAI, которая является одной из самых точных моделей для распознавания речи, включая русский язык.
|
||
* **Полный контроль:** вы контролируете весь процесс — от выбора модели до формата выходных данных.
|
||
* **Массовая обработка:** скрипт `whisper_transcribe.py` позволяет автоматически обработать все аудиофайлы в указанной папке.
|
||
|
||
## 🛠️ Как начать?
|
||
|
||
Для развертывания системы на вашем компьютере (протестировано на Ubuntu) выполните следующие шаги.
|
||
|
||
### Шаг 1: Подготовка окружения
|
||
|
||
Для автоматической установки всех необходимых компонентов (Python, FFmpeg, NVIDIA Drivers, CUDA, PyTorch) был написан специальный bash-скрипт.
|
||
|
||
1. **Клонируйте репозиторий:**
|
||
```bash
|
||
git clone https://github.com/empenoso/offline-audio-transcriber
|
||
cd https://github.com/empenoso/offline-audio-transcriber
|
||
```
|
||
|
||
2. **Сделайте скрипт установки исполняемым:**
|
||
```bash
|
||
chmod +x setup_whisper.sh
|
||
```
|
||
|
||
3. **Запустите скрипт:**
|
||
```bash
|
||
./setup_whisper.sh
|
||
```
|
||
Скрипт обновит систему, установит драйверы NVIDIA (если необходимо), CUDA, создаст виртуальное окружение `.venv` и установит все Python-библиотеки, включая PyTorch и Whisper.
|
||
|
||
> **Примечание:** Если скрипт установит драйверы NVIDIA, может потребоваться перезагрузка компьютера.
|
||
|
||
### Шаг 2: Запись и размещение аудио
|
||
|
||
* Запишите лекцию, доклад или совещание на диктофон или телефон.
|
||
* Для лучшего качества располагайте микрофон ближе к источнику звука и избегайте фонового шума.
|
||
* Скопируйте аудиофайлы (поддерживаются `.mp3`, `.wav`, `.m4a` и другие) в отдельную папку, например, `audio`.
|
||
|
||
### Шаг 3: Запуск распознавания
|
||
|
||
1. **Активируйте виртуальное окружение:**
|
||
```bash
|
||
source .venv/bin/activate
|
||
```
|
||
|
||
2. **Запустите скрипт `whisper_transcribe.py`:**
|
||
|
||
* **Простой запуск** (поиск аудио в текущей папке, использование `large` модели, результаты в папку `transcripts`):
|
||
```bash
|
||
python3 whisper_transcribe.py
|
||
```
|
||
|
||
* **Указание параметров вручную** (папка с аудио, модель, папка для результатов):
|
||
```bash
|
||
python3 whisper_transcribe.py ./audio large ./results
|
||
```
|
||
* `./audio` — папка с вашими аудиофайлами.
|
||
* `large` — используемая модель Whisper. Доступные модели: `tiny`, `base`, `small`, `medium`, `large`. Чем больше модель, тем выше точность, но и выше требования к ресурсам.
|
||
* `./results` — папка, куда будут сохранены результаты.
|
||
|
||
### Шаг 4: Анализ результатов
|
||
|
||
После выполнения скрипта в выходной папке вы найдете:
|
||
* **`.txt` файл** для каждой аудиозаписи с полным текстом.
|
||
* **`.srt` файл** для каждой аудиозаписи с субтитрами и таймкодами.
|
||
* **`all_transcripts.txt`** — один файл, содержащий все расшифровки подряд.
|
||
|
||
## 🔮 Будущие планы: диа-что? Диа-ри-за-ция!
|
||
|
||
Следующий большой шаг — **диаризация**, то есть автоматическое разделение текста по спикерам. Это позволит не просто получать сплошной текст совещания, а видеть, кто именно и что сказал.
|
||
|
||
На данный момент интеграция с **WhisperX** (расширенная версия Whisper с поддержкой диаризации) отложена из-за технических сложностей с зависимостями. Планируется решить эту проблему с помощью Docker-контейнеров от NVIDIA. Следите за обновлениями!
|
||
|
||
Файл `whisperx_diarization.py` в репозитории является заглушкой для будущей реализации.
|
||
|
||
## ❓ Где получить помощь?
|
||
|
||
Если у вас возникли проблемы с установкой, запуском или есть предложения по улучшению, пожалуйста, создайте `Issue` в этом репозитории.
|
||
|
||
## 👤 Автор и поддержка
|
||
|
||
* **Автор:** Михаил Шардин
|
||
* **Онлайн-визитка:** [shardin.name](https://shardin.name/)
|
||
* **Telegram-канал:** ["Умный Дом Инвестора"](https://t.me/умный_дом_инвестора)
|
||
|
||
---
|
||
Этот проект является демонстрацией того, как современные open-source инструменты позволяют решать сложные задачи без значительных финансовых затрат и с полным контролем над своими данными.
|