Транскрибация аудио

Отчёт по обработке 15 аудиофайлов из 4 источников. OpenVINO Whisper-base на NPU, язык принудительно русский, защита от зацикливания.

Всего аудио~259 мин4 источника
Время обработки~29 минNPU, ~9x real-time
Файлов159 (CCTV) + 6 (Zoom)
Галлюцинацийсрезано ~20%постобработкой

1. Аудио из C:\DOC\AUDIO (3 точки)

AVI/MP4 с 8кГц PCM/alaw (телефонное качество). Whisper-base не смог распознать речь на двух из трёх точек. Причина: слишком низкое качество записи.

ТочкаФайловДлит.ФорматРезультат
Белгород МегаГринн ЦМ4 AVI40 минPCM 8кГц— пусто (галлюцинации The river...)
Севск2 MP435 минalaw 8кГц— частично (грязный русский, ~65% кириллицы)
Унеча3 AVI30 минPCM 8кГц— пусто (галлюцинации In In...)
Вывод: Аудио с видеокамер (8кГц) не поддаётся качественной расшифровке моделью Whisper-base. Для таких записей нужна модель не меньше small/medium или предварительное улучшение аудио.

2. Zoom-записи «Омск Френдли🙏» (6 файлов)

Zoom recording (MP4 → MP3). Качество хорошее, 44.1кГц стерео. Результат: ~75% кириллицы, текст читаемый.

#ФайлДлит.Обраб.СкоростьЧанков
1omsk_1.mp332:29171с11.4x33
2omsk_2.mp310:2241с15.3x11
3omsk_3.mp31:07:47396с10.3x68
4omsk_4.mp328:08211с8.0x29
5omsk_5.mp343:01338с7.6x44
6omsk_6.mp344:04362с7.3x45
Итого3:45:5425.3 мин8.9x230

Защита от зацикливания (anti-loop)

Проблема: NPU KV-Cache переполняется на длинных чанках → модель зацикливается (повторяет «я не знаю, что это» или «2 разум нас» бесконечно).

1. Чанки 60 секунд (вместо 120/300) — меньше контекста, ниже нагрузка KV-Cache 2. Пересоздание WhisperPipeline на каждый чанк — «холодный» старток, без остаточного кэша 3. language="<|ru|>" — принудительный русский, иначе модель уходит в англ. галлюцинации 4. Постобработка: обнаружение повторяющихся фраз (≥4 раз) → удаление лишних 5. Фильтр RMS 0.006 — пропуск тишины 6. Удаление водяных знаков Zoom («Редактор субтитров А.Семкин...»)

3. Рекомендации

Для CCTV / 8кГц записей

  • Использовать модель Whisper-small или medium
  • Предварительно апскейлить аудио через ресемплинг + фильтрацию
  • Или использовать специализированный ASR для телефонного качества

Для Zoom / конференций

  • Текущий pipeline работает стабильно
  • Рекомендуется chunk-sec=60, overlap=3
  • Принудительный язык — обязательно
  • Постобработка обязательна (срезает 12-34% шума)

Для production

  • Перейти на Whisper-small-ov (точнее, но медленнее)
  • Добавить детектор спикеров (diarization)
  • Автоматическая очередь через RabbitMQ
  • Сохранять WAV + raw + clean версии

4. Анализ содержания

Zoom-встречи «Омск Френдли🙏»: Обсуждение оргструктуры, KPI, мотивации от прибыли, P&L точек, Activity-based ФОТ, Bitrix24, оптимизация салонов.

Ключевые темы:

Точки из C:\DOC\AUDIO: Качество записи не позволило извлечь полезное содержание. Рекомендуется перезаписать через Zoom или телефонную линию.

5. Pipeline

Исходные файлы (ZIP/RAR/ссылки Zoom) ↓ yt-dlp / unzip Аудио (AVI/MP4/MP3) ↓ ffmpeg → WAV 16кГц моно Транскрибация Whisper (NPU) ↓ chunk=60s, lang=ru, pipeline per chunk Raw-текст с метками времени ↓ Постобработка (удаление повторов, водяных знаков) Clean-текст ↓ Telegram / Web Готовая страница