YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Audit — модель «аудио → текст»
Audit — расшифровщик речи в текст на базе Whisper base (многоязычная модель OpenAI, 99 языков, включая русский и английский). Сборка полностью воспроизводима из PyPI: веса собираются из двух частей, опубликованных на PyPI, и запускаются через lightweight CTranslate2 runtime — torch не нужен.
Веса хранятся в int8-квантованном виде (~74 МБ вместо ~145 МБ fp16) — архив укладывается в один файл <100 МБ. Квантование по стандартному алгоритму CTranslate2 (per-channel scales); качество проверено на примере реальной речи — транскрибация идентична fp16-версии.
Что внутри
audit/
├── audio_audit/ # Python-пакет: engine + CLI + HTTP-сервер
├── scripts/
│ ├── build_model.py # сборка весов из PyPI-пакетов (cat part1 part2)
│ ├── quantize_int8.py # квантование fp16 → int8 (~74 МБ)
│ └── publish_github.py # упаковка ZIP + GitHub Release
├── tests/smoke_test.py # сквозной тест на примере speech
├── examples/jfk.wav # пример реальной речи (11 сек)
├── model/ # веса int8 (собираются, не в git)
├── requirements.txt
└── README.md / MODEL_CARD.md
Быстрый старт
python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
# 1. Собрать веса (~145 МБ fp16, только PyPI)
python scripts/build_model.py
# 2. Квантовать в int8 (~74 МБ)
python scripts/quantize_int8.py
# 3. Транскрибировать аудио → текст
python -m audio_audit.cli examples/jfk.wav
python -m audio_audit.cli examples/jfk.wav --language ru --json
# 4. Сквозной тест
python tests/smoke_test.py
HTTP-сервис
python -m audio_audit.server --port 8000
GET /— мини-интерфейс в браузере (выбрать файл → получить текст)POST /transcribe— raw-телом аудио, опционально?language=ru; возвращает JSON{text, language, probability, segments}
Как собрана модель
- На PyPI опубликованы две части весов CTranslate2 (Whisper base):
gympulse-whisper-base-part1иgympulse-whisper-base-part2. scripts/build_model.pyскачивает оба wheel, распаковываетmodel.bin.part1/model.bin.part2,config.json,tokenizer.json,vocabulary.txt.- Части склеиваются в один
model.bin:cat model.bin.part1 model.bin.part2 > model.bin - Проверяются заголовок (version 6 + «WhisperSpec») и SHA-256.
scripts/quantize_int8.pyквантует веса в int8 (per-channel scales, алгоритм CTranslate2): ~145 МБ → ~74 МБ.
Веса — это официальный мультиязычный Whisper base (MIT), конвертированный
в CTranslate2 формат (Systran/faster-whisper-base). Инференс — через
faster-whisper (CTranslate2 runtime), который работает на CPU без GPU.
Ограничения
- Whisper base — самая маленькая многоязычная модель OpenAI. По качеству отстаёт от large/medium, особенно на акцентах и шуме.
- CPU-инференс: примерно в 1–3 раза быстрее воспроизведения аудио на современном CPU (int8-квантование).
- Не для экзаменационных целей: модель иногда «выдумывает» текст на тишине/шуме (hallucination).
- Лицензия весов — MIT (OpenAI Whisper); runtime-пакеты — свои лицензии.
Лицензия
Веса: MIT (OpenAI Whisper). Код: MIT.