TGViewer
annFlow annFlow @annsflow · 33 subscribers
Post #160 25
Почему Whisper здесь не главное: VAD, chunks и подготовка аудио

Обычно транскрибацию описывают так:

аудио
› Whisper
› текст


Но качество часто определяется раньше, чем запускается Whisper.

Главный вопрос:

что именно мы отправляем модели?

В записи может быть час звука, но далеко не час речи.

Паузы.
Ожидание.
Фоновый шум.
Случайные звуки.
Длинные участки, где никто ничего не говорит.


Если отправить всё целиком, модель тратит время на пустоту, теряет контекст и иногда начинает находить слова там, где их не было.

Поэтому VoxBase сначала строит карту речи.

аудио
› Silero VAD
› речевые острова
› chunks
› Whisper


VAD, Voice Activity Detection, не распознаёт слова, он отвечает на более простой вопрос:
где человек говорит, а где нет?


segments = detect_speech(audio)
chunks = merge_segments(segments, target_sec=60)

for chunk in chunks:
text = whisper(chunk)


• detect_speech() находит начало и конец каждого речевого участка
• merge_segments() собирает мелкие участки примерно в минутные блоки
• только после этого каждый блок отправляется в Whisper

Почему не транскрибировать каждый короткий сегмент отдельно?

Потому что на фрагментах по 1–2 секунды Whisper теряет контекст и начинает галлюцинировать.

Поэтому VoxBase собирает мелкие реплики в chunks примерно по 60 секунд речи.

Не весь файл целиком.
Не отдельные обрывки.
А достаточно большие блоки, чтобы модель понимала контекст.

На одном тесте запись длиной 26 минут содержала 131 речевой сегмент. VoxBase собрал их всего в 4 нормальных chunk.

На другом тесте:

62 минуты аудио
› 574 речевых сегмента
› 42:50 реальной речи
› 30,9% тишины пропущено


То есть почти треть файла вообще не пришлось транскрибировать.

Перед Whisper каждый chunk дополнительно проходит через ffmpeg:

• переводится в mono
• приводится к 16 kHz
• очищается от части шума
• нормализуется по громкости
• сохраняется как рабочий WAV


И только после этого включается локальная модель large-v3.

Главная мысль оказалась простой:

хорошая транскрибация начинается не с выбора модели.
Она начинается с того, что модель не заставляют слушать мусор.

VoxBase сначала отделяет речь от звука, восстанавливает удобный контекст и только потом просит Whisper распознать слова.

сырой звук
› карта речи
› чистые chunks
› Whisper
› транскрипт с исходными таймкодами


Поэтому Whisper здесь важен, но он лишь последний рабочий на конвейере.

#VoxBase@annsFlow

Оглавление темы 📌

Навигация по проектам канала📍

Все каналы 🎶


💻 annFlow
Telegram annFlow Как я построил VoxBase, или Как превратить голос, видео и подкасты в память ● Почему голосовые заметки обычно умирают ● Как VoxBase превращает запись с iPhone в Markdown ● Запись с iPhone 📸 ● Почему Whisper здесь не главное: VAD, chunks и подготовка…
More from @annsflow
  1. Sep 24, 2026LiveContext в реальном разговоре. На видео я разбираюсь с претензией по недоставленному за…
  2. Sep 21, 2026Как LiveContext разделяет мой голос и голос собеседника Чтобы LiveContext мог понимать раз…
  3. Sep 16, 2026Почему мне оказалось недостаточно просто сохранять разговоры В VoxBase я решал проблему то…
  4. Sep 15, 2026Как я построил LiveContext, или Как связать живой разговор с памятью проекта ● Почему мне…
  5. Sep 14, 2026annFlow pinned a video
  6. Sep 14, 2026Самая неожиданная вакансия, которую нашел мой бот Моя система постоянно сама ищет вакансии…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →