Технический FAQ LAME содержит некоторую соответствующую информацию. Вот некоторые выдержки:
Почему LAME добавляет тишину в начало каждой песни?
Это из-за нескольких факторов:
Задержка декодера при запуске файла:
Все протестированные мной декодеры вводят задержку в 528 сэмплов. То есть после декодирования mp3-файла на выходе будет 528 сэмплов нулей, добавленных вперед. Это связано с тем, что стандартные процедуры MDCT/filterbank, используемые ISO, имеют задержку выборки 528.
Кроме того, из-за перекрывающейся природы кадров MDCT, первая половина первой гранулы (1 гранула = 576 выборок) не имеет предыдущего кадра для перекрытия, что приводит к ослаблению первых N выборок.
Задержка кодера в начале файла:
Кодеры на основе ISO (BladeEnc, 8hz-mp3 и т.д.) Используют процедуру MDCT/filterbank, аналогичную той, которая используется при декодировании, и, таким образом, также вводят собственную задержку выборки 528. WAV-файл, закодированный и декодированный, будет иметь задержку 1056 сэмплов (1056 сэмплов будут добавлены в начало).
Начиная с LAME 3.55, у нас есть новая подпрограмма MDCT/filterbank, написанная Такехиро Томинага с задержкой 48 выборок.
Обратитесь к Техническому FAQ LAME для получения дополнительных ответов и более подробной информации.
Некоторые варианты, которые не являются хорошими, но могли бы сделать работу:
Вы должны использовать MP3? Можете ли вы повторно вывести ваши файлы в другой формат, такой как PCM ("wav")? Обратите внимание, что простая перекодировка существующих файлов MP3 в другой формат сохранит задержку.
Вы можете использовать afade
звуковой фильтр , чтобы добавить замирание из / исчезать в каждой секции, или atrim
аудио фильтр , чтобы , возможно , сделать зазоры менее резким. Однако фильтрация требует перекодирования.