AAC в текст
Файл .aac — это голый поток кадров без контейнера. У него нет ни оглавления, ни надёжной длительности, поэтому многие сервисы либо отказываются его брать, либо тарифицируют по неверному времени.
Технические характеристики AAC
| Полное название | Advanced Audio Coding, поток ADTS |
|---|---|
| Контейнер | ADTS — кадры без глобального заголовка |
| Кодеки внутри | AAC-LC, HE-AAC |
| MIME-типы | audio/aac, audio/aacp |
| Расширения | .aac, .adts |
| Типичный битрейт | 128 кбит/с |
| Частота дискретизации | 44 100 Гц, стерео |
| Сжатие | с потерями |
| Демультиплексирование | не нужно |
| Лимит на файл | 4 ГБ — это примерно 4 368 минут при типичном битрейте |
| Минут в 1 ГБ | 1 092 |
Что конвейер делает именно с AAC
- Синхронизируемся по сигнатуре ADTS-кадра, отбрасывая мусор в начале (частая ситуация при записи потока с середины).
- Длительность считаем как число кадров × 1024 сэмпла / частоту дискретизации — единственный корректный способ для ADTS.
- Определяем HE-AAC по наличию SBR: у таких файлов реальная частота вдвое выше заявленной в заголовке, и ошибка здесь даёт «ускоренную» речь.
- Для записей радиоэфира включаем подавление музыкального фона перед распознаванием — иначе джинглы порождают ложные слова.
Откуда берутся такие файлы
- Запись интернет-радио и подкаст-потоков
- Выгрузка аудио из систем эфирного вещания
- Результат ffmpeg -acodec copy из MP4 без указания контейнера
- Некоторые китайские диктофоны
Грабли, о которых стоит знать заранее
- Плееры показывают неверную длительность
Без контейнера длительность приходится оценивать. Мы считаем её точно проходом по кадрам, поэтому счёт совпадает с реальностью, даже если VLC показывает другое.
- HE-AAC определяется неправильно — речь звучит ускоренно
Если после конвертации у вас «бурундуки», это SBR. Мы детектируем его по содержимому потока, а не по заголовку.
- Записанный с середины поток начинается с половины кадра
Первые миллисекунды — мусор. Мы их отбрасываем при синхронизации, слово не теряется.
Как формат влияет на точность
AAC-LC 128 кбит/с нейтрален для распознавания. HE-AAC на 32 кбит/с — нет: parametric stereo и SBR реконструируют верх спектра синтетически, и модель на этом ошибается чаще.
| Модель | Средний WER, % | Далёкий микрофон | Кол-центр |
|---|---|---|---|
| GigaAM v3 RNNT (Сбер, MIT)используем мы | 8,3 | 3,9 | 9,5 |
| GigaAM v2 RNNT | 10,6 | — | — |
| T-one + LM (Т-Банк, Apache-2.0) | 16,3 | — | — |
| Whisper large-v3 | 21 | 16,4 | 23,1 |
Проверка файла и расчёт стоимости
Файл не загружается и никуда не отправляется: длительность читает ваш браузер локально. Ограничения показаны для AAC.
Отменять ничего не нужно: у нас нет автопродления и мы не храним данные платёжных карт.
Частые вопросы
- Почему у .aac неправильно показывается длительность?
- У формата нет контейнера с полем длительности. Мы считаем её по кадрам, поэтому тарификация корректная независимо от того, что показывает плеер.
- Можно ли расшифровать запись радиоэфира с музыкой?
- Да. Мы подавляем музыкальный фон перед распознаванием; полностью петь текст песни модель не станет — она размечает музыку как неречевой сегмент.
- Чем .aac отличается от .m4a?
- Внутри один и тот же кодек, но .m4a завёрнут в контейнер MP4 с оглавлением и метаданными, а .aac — голый поток.