Как сгенерировать wav с G.711alaw из mp3-файла с помощью библиотеки pydub?

Я пытаюсь создать файл wav с G. 711 alaw из файла mp3 с использованием библиотеки Pydub. Файл wav генерируется, но не передискретизируется до частоты 8 кГц. Я пробовал следующий код:

from_path = '/home/nikhil/Music/m1.mp3' #this is a mp3 file
to_path = '/home/nikhil/Music/m1.wav' #resulted file
from_format = 'mp3'
to_format = 'wav'
params = ["-acodec", "pcm_alaw", "-ar", "8000"]
AudioSegment.from_file(from_path, from_format).export(to_path, format=to_format, parameters=params)

Кто-нибудь может мне помочь?


person nik    schedule 30.11.2013    source источник


Ответы (1)


Я просмотрел код в методе экспорта и понял, что ffmpeg не используется, когда выходной формат "wav".

Поскольку wav используется внутри, он просто записывает версию звука в памяти непосредственно на диск (это было сделано, чтобы сделать ffmpeg дополнительной зависимостью, если вам нужна только поддержка wav, вам не нужно ее устанавливать).

У меня есть 2 идеи, которые могут позволить вам обойти эту проблему:

  1. Используйте другой формат kwarg, например "pcm". Я не уверен, что это сработает, и у меня нет ffmpeg на моей текущей машине для тестирования, но определенно стоит попробовать.

    from_path = '/home/nikhil/Music/m1.mp3' #this is a mp3 file
    to_path = '/home/nikhil/Music/m1.wav' #resulted file
    from_format = 'mp3'
    to_format = 'pcm'
    params = ["-acodec", "pcm_alaw", "-ar", "8000"]
    AudioSegment.from_file(from_path, from_format).export(to_path, format=to_format, parameters=params)
    
  2. Используйте внутренний механизм pydub для передискретизации до 8 кГц: опять же, я не могу проверить это прямо сейчас...

    from_path = '/home/nikhil/Music/m1.mp3' #this is a mp3 file
    to_path = '/home/nikhil/Music/m1.wav' #resulted file
    
    seg = AudioSegment.from_mp3(from_path)
    seg = seg.set_frame_rate(8000)
    seg.export(to_path, format="wav")
    
person Jiaaro    schedule 02.12.2013
comment
Второй работает нормально ... но для первого, когда я пытаюсь открыть преобразованный файл в смелости, он говорит, что это недопустимый файл. - person nik; 03.12.2013