さて、今私はmp3をwavに変換することに行き詰まっています。私はさまざまな答えを見てきましたが、私はpydubの1つに行くと思います。
from pydub import AudioSegment
AudioSegment.from_mp3("/input/file.mp3").export("/output/file.wav", format="wav")
しかし、上記のコードを実行すると、次のエラーが発生します
C:\ Python27\lib\site-packages\pydub-0.14.2-py2.7.Egg\pydub\utils.py:165:RuntimeWarning:ffmpegまたはavconvが見つかりませんでした-デフォルトのffmpegですが、機能しない可能性があります
トレースバック(最後の最後の呼び出し):ファイル "C:/Users/phourlhar/Desktop/VoiceDetector/yeah.py"、7行、stereo_to_mono()
ファイル「C:\ Users\phourlhar\Desktop\VoiceDetector\utils.py」、25行目、stereo_to_mono
sound = AudioSegment.from_mp3(PROJECT_DIR+'\\files\\rec'+str(c)+'.mp3')
From_file内のファイル「build\bdist.win32\Egg\pydub\audio_segment.py」、346行目
ファイル "C:\ Python27\lib\subprocess.py"、行711、init errread、errwrite)
_execute_child startupinfo内のファイル「C:\ Python27\lib\subprocess.py」、948行
WindowsError:[エラー2]指定されたファイルが見つかりません
ファイルが存在することを確信しているので、なぜこのエラーが発生するのかわかりません。 ffmpegのインストールを提案する回答はありますが、後でアプリの展開に何らかの影響があるかどうかはわかりません
pydub
モジュールはffmpeg
またはavconf
プログラムを使用して実際の変換を行います。したがって、これを機能させるにはffmpeg
をインストールする必要があります。
ただし、pydub
が必要ない場合は、組み込みのsubprocess
モジュールを使用して、次のようにffmpeg
のようなコンバータープログラムを呼び出すことができます。
import subprocess
subprocess.call(['ffmpeg', '-i', '/input/file.mp3',
'/output/file.wav'])
ちなみに、これにはffmpegバイナリが$ PATHの場所にあることが必要です。
Edit:ffmeg
では、私の知る限り、ステレオをモノラルに変換することはできません。左または右のチャネルのみ選択できます。これはあなたが望むものではないと思います。
sox
プログラムはステレオをモノラルに変換できます:
import subprocess
subprocess.call(['sox', '/input/file.mp3', '-e', 'mu-law',
'-r', '16k', '/output/file.wav', 'remix', '1,2'])
これは、8 kHz /サンプルで16 kHzでサンプリングし、16 kb/sを提供します。
あなたはpydubに行く必要があります、それはオーディオファイルに関連する操作のための素晴らしいモジュールです。
注意。 pydubを使用する前に、ffmpegを必ずインストールしてください。
ffmpegのインストールに関するヘルプは、これ link を使用できます。
次にpydubをインストールするには、コマンドプロンプトを開いて次のように入力します。
pip install pydub
次に、mp3からwavにファイルを変換するには、次のようにpydubを使用します。
import pydub
sound = pydub.AudioSegment.from_mp3("D:/example/Apple.mp3")
sound.export("D:/example/Apple.wav", format="wav")