Files
offline-audio-transcriber/README.md
Mikhail Shardin 30d9128430 Update README.md
2025-08-30 16:55:25 +05:00

99 lines
7.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Локальная система распознавания речи на базе 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 инструменты позволяют решать сложные задачи без значительных финансовых затрат и с полным контролем над своими данными.