У меня есть ценная для меня аудиозапись, сделанная несколько лет назад, и я получил ее через сообщение типа « 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, чтобы подчеркнуть голос в записи? В ответе на старый вопрос здесь упоминается « выравнивание как правильная техника для фильтрации шума и улучшения распознавания голоса ...», но мне пока не удалось найти хорошее объяснение того, как это работает. Любые другие фильтры?

0