
У меня есть аудиозапись, которая мне очень дорога. Она была сделана много лет назад и я получил ее в виде mms
сообщения на свой старый GSM-телефон.
По данным ffprobe.exe -show_entries format:stream -count_frames -count_packets -i mms-1.amr > input.txt
, аудио имеет следующие характеристики:
[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]
Итак, я пробовал несколько раз, ffmpeg
но единственным работоспособным подходом, который я нашел, было двухэтапное преобразование с извлечением raw
сначала аудио:
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
Интересно, что размер оригинального файла составляет 27 КБ, а размер волнового файла — 539 КБ!
Два вопроса:
Это единственный способ конвертировать аудиофайл типа .amr в любой формат, который легко распознается системой
Windows
? А как насчет одной строки кода для конвертации напрямую вwav
формат?Есть ли /есть/ хорошие аудиофильтры в ffmpeg для выделения голоса в записи. Ответ на старый вопросздесьупоминает "выравниваниекак надлежащий метод фильтрации шума и улучшения распознавания голоса...", но мне пока не удалось найти хорошего объяснения того, как это работает. Есть ли другие фильтры?