ГлавнаяБлог → Подготовка аудио к распознаванию: рецепты ffmpeg

Подготовка аудио к распознаванию: рецепты ffmpeg

Опубликовано 2026-08-20 · 5 мин чтения

Половина проблем с распознаванием решается до запроса к API — на этапе подготовки файла. Ниже набор команд ffmpeg, которые закрывают почти все случаи: видео вместо аудио, стерео вместо моно, час тишины в конце записи и файл, не влезающий в лимит.

Извлечь звук из видео

Запись встречи, вебинара или экрана обычно приходит в mp4. Видеодорожка распознаванию не нужна:

ffmpeg -i meeting.mp4 -vn -ac 1 -ar 16000 -c:a libopus -b:a 24k meeting.ogg

Файл на полтора часа после такой обработки весит около 15 МБ вместо полутора гигабайт и загружается за секунды.

Разложить собеседников по каналам

Если телефония пишет оператора и клиента в разные каналы стерео, это шанс получить точное разделение реплик без всякой диаризации:

ffmpeg -i call.wav -map_channel 0.0.0 operator.ogg -map_channel 0.0.1 client.ogg

Дальше распознаём файлы по отдельности и склеиваем реплики по тайм-кодам — получается диалог с точной атрибуцией.

Убрать тишину и обрезать края

Запись с диктофона часто начинается за десять минут до разговора. Обрезать лишнее по времени:

ffmpeg -i raw.ogg -ss 00:09:30 -to 01:12:00 -c copy trimmed.ogg

Убрать длинные паузы внутри записи:

ffmpeg -i raw.ogg -af silenceremove=stop_periods=-1:stop_duration=2:stop_threshold=-40dB clean.ogg

С удалением тишины важно понимать цену: тайм-коды в результате перестают соответствовать исходной записи. Если вы собираетесь возвращаться к моментам видео, лучше оставить паузы на месте.

Разрезать длинную запись

Нарезка равными кусками по 15 минут:

ffmpeg -i long.ogg -f segment -segment_time 900 -c copy part%03d.ogg

Такой способ прост, но может разорвать фразу. Чтобы резать по паузам, сначала находим тишину:

ffmpeg -i long.ogg -af silencedetect=noise=-35dB:d=1 -f null - 2>&1 | grep silence_end

Полученные отметки используем как границы кусков — тогда ни одно предложение не разорвётся пополам, и склеенный текст читается как единый.

Попробуйте на своих записях. Регистрация занимает минуту, бесплатных минут хватает, чтобы оценить качество.

Получить ключ бесплатно

Частые вопросы

Обязательно ли сводить в моно?

Не обязательно, но полезно: файл вдвое легче, а на результат это не влияет. Стерео стоит сохранять только тогда, когда собеседники записаны в разные каналы.

Почему именно 16 кГц?

Модель работает с этой частотой дискретизации, всё что выше — приводится к ней внутри. Отправлять 48 кГц можно, но вы просто платите трафиком за данные, которые будут отброшены.

Не ухудшит ли сжатие в opus качество распознавания?

На 24 кбит/с моно разницы в тексте практически не бывает: кодек рассчитан на речь. Заметные потери начинаются ниже 16 кбит/с.

Как склеить расшифровки нарезанных кусков?

Сортируйте части по номеру в имени файла и соединяйте тексты в том же порядке. Если нужны сквозные тайм-коды, прибавляйте к времени сегмента смещение начала куска.

Читайте также