← Back

LocalWhisper Batch Transcriber

🎙️ LocalWhisper Batch Transcriber

Локальная пакетная расшифровка аудио/видео в текст (Whisper / faster-whisper) — всё хранится внутри проекта

LocalWhisper Batch Transcriber — консольная утилита для быстрого распознавания речи из аудио и видеофайлов в TXT (и при желании SRT-субтитры) с использованием faster-whisper. Проект изначально устроен так, чтобы ничего “не разъезжалось” по системе: модели, кеш HuggingFace и результаты сохраняются локально в папках проекта.


✅ Что умеет

  • 📦 Автозагрузка моделей Whisper (tiny → large-v3) и хранение их локально
  • 📁 Пакетная обработка файлов из src/input/ (можно выбрать все или отдельные номера/диапазон)
  • 🌍 Выбор языка распознавания (auto / ru / en / …)
  • 📝 Вывод результата в TXT: src/output/<имя>.txt
  • 🕒 Опциональные SRT-субтитры с таймкодами: src/output/<имя>.srt
  • 🧹 Автоматическая “очередь” обработки: после успеха исходник переносится в src/recycle/
  • GPU-ускорение NVIDIA (CUDA, float16) при наличии, иначе автоматический fallback на CPU (int8)
  • 🎬 Поддержка большинства медиаформатов через FFmpeg

🧠 Как это работает (логика запуска)

  1. Проверяется наличие FFmpegffprobe) — без них видео/многие форматы аудио могут не открыться.
  2. Выполняется проверка моделей — при первом запуске утилита докачивает недостающие модели.
  3. Сканируется папка src/input/ и показывается список файлов.
  4. Выбираются файлы:

  5. Enter → обработать всё

  6. или выбор по номерам/диапазону: 1 2 5, 1-3, 1,4
  7. Запрашиваются параметры:

  8. язык (auto по умолчанию)

  9. модель (large-v3 по умолчанию)
  10. нужно ли сохранять SRT
  11. Запускается распознавание: прогресс отображается через tqdm.
  12. Результаты сохраняются в src/output/, исходники перемещаются в src/recycle/.

🗂️ Структура проекта и хранение данных

Проект полностью “самодостаточный” — всё внутри папки проекта:

  • models/скачанные модели Whisper
  • hf_cache/HuggingFace cache, чтобы не кешировать модели в профиле пользователя
  • src/input/ — входные файлы (аудио/видео)
  • src/output/ — выходные файлы (.txt и .srt)
  • src/recycle/ — обработанные исходники (архив очереди)

Дополнительно: задаются переменные окружения HF_HOME и HUGGINGFACE_HUB_CACHE, чтобы HuggingFace работал строго в пределах hf_cache/.


⚙️ Что нужно для работы

1) Python

  • Python 3.10+ (рекомендуется 3.11)

2) FFmpeg (обязательно)

Нужен для чтения большинства форматов и определения длительности.

  • Windows (рекомендуемый способ):
winget install Gyan.FFmpeg

3) Python-зависимости проекта

Устанавливаются из requirements.txt (см. ниже).

4) NVIDIA / CUDA (опционально, для ускорения)

Если на машине есть NVIDIA-видеокарта, утилита пытается работать через CUDA + float16. Если CUDA недоступна/не поднялась — скрипт не ломается, а автоматически переключается на CPU int8 и продолжает работу.


Установка

В папке проекта выполните:

pip install -r requirements.txt

▶️ Запуск

  1. Положите файлы (аудио/видео) в папку:
src/input/
  1. Запустите:
python main.py
  1. Заберите результат из:
src/output/

📝 Поведение “как очередь задач”

  • src/input/ — это “входная очередь”
  • src/output/ — результат
  • src/recycle/ — архив обработанных файлов Это удобно для регулярной работы: просто закидываются новые файлы в input, запускается скрипт, и всё раскладывается по папкам автоматически.