
Tenho um registro de áudio que me é precioso, feito anos atrás, e que recebi por meio de uma mms
espécie de mensagem no meu antigo telefone GSM.
Segundo ffprobe.exe -show_entries format:stream -count_frames -count_packets -i mms-1.amr > input.txt
, o áudio possui as seguintes especificações:
[STREAM]
codec_name=amr_nb
codec_long_name=AMR-NB (Adaptive Multi-Rate NarrowBand)
codec_time_base=1/8000
codec_tag_string=samr
sample_rate=8000
channels=1
channel_layout=mono
bits_per_sample=0
duration_ts=275840
duration=34.480000
bit_rate=6000
nb_read_frames=1724
nb_read_packets=1724
[/STREAM]
[FORMAT]
filename=mms-1.amr
nb_streams=1
format_long_name=3GPP AMR
bit_rate=6401
probe_score=100
[/FORMAT]
Então, tentei várias vezes, ffmpeg
mas a única abordagem viável que encontrei foi uma conversão de duas pernas, extraindo raw
primeiro o áudio:
1)ffmpeg -i mms-1.amr -f s16le -c:a pcm_s16le output.raw
2)ffmpeg -f s16le -ar 8000 -ac 1 -i output.raw mms-1.wav
Curiosamente, o tamanho do arquivo original é 27 KB, o arquivo wave tem 539 KB!
Duas questões:
Esta é a única maneira de converter um tipo de arquivo de áudio .amr em qualquer formato para ser facilmente reconhecido pelo
Windows
sistema? Que tal uma única linha de código para converter diretamente nowav
formato?Existe/existem/alguns bons filtros de áudio no ffmpeg para acentuar uma voz na gravação. A resposta para uma pergunta antigaaquimenciona "equalizandocomo uma técnica adequada para filtrar ruídos e melhorar o reconhecimento de voz..." mas até agora não consegui encontrar uma boa explicação de como funciona. Algum outro filtro?