Problema: o arquivo MP3 tem um intervalo
Este é um problema conhecido e reconhecido desde pelo menos 2000:
1 Why is a decoded MP3 longer than the original .wav file?
Because LAME (and all other MDCT based encoders) add padding to the beginning and end of each song. For an explination of why, see the questions below.
Explicação técnica longa de 800 palavras referente a problemas de decodificador e codificador cortados.
Os jogadores habilitados para LAME aparentemente devem saltar automaticamente essa lacuna:
LAME embeds the amount of padding in the ancillary data of the first frame of the MP3 file. (LAME INFO tag). The LAME decoder will use this information to remove the leading padding of an MP3 file.
no entanto:
Modifications to the decoder so that it will also remove the trailing padding have not yet been made.
Alternativas
Você pode tentar outro codificador como mencionado, se tiver acesso à versão do Fraunhofer (o IIRC está disponível no iTunes e no Windows Media Player). Como alternativa, você poderá compilar / adquirir uma versão de sox
com libmad
ativado. Eu acho que eles terão problemas semelhantes, no entanto.
A questão é, você definitivamente precisa de um MP3 como mencionado nos comentários? Você está usando um player que só lida com MP3s?
Se absolutamente, definitivamente, positivamente tem que ser um MP3, nenhum ifs ands ou buts; e o encoder Fraunhofer também dá o mesmo problema, você poderia dar uma olhada em um tópico anterior aqui no SU:
Melhor programa para cortar o começo e o silêncio fim de arquivos mp3?