Как наилучшим образом сохранить качество файла .amr с помощью ffmpeg

Как наилучшим образом сохранить качество файла .amr с помощью ffmpeg

У меня есть аудиозапись, которая мне очень дорога. Она была сделана много лет назад и я получил ее в виде 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 КБ!

Два вопроса:

  1. Это единственный способ конвертировать аудиофайл типа .amr в любой формат, который легко распознается системой Windows? А как насчет одной строки кода для конвертации напрямую в wavформат?

  2. Есть ли /есть/ хорошие аудиофильтры в ffmpeg для выделения голоса в записи. Ответ на старый вопросздесьупоминает "выравниваниекак надлежащий метод фильтрации шума и улучшения распознавания голоса...", но мне пока не удалось найти хорошего объяснения того, как это работает. Есть ли другие фильтры?

Связанный контент