wavオーディオファイルをPythonでミックスする方法です。2つの音声データの合成方法。
Pythonでオーディオミキシングをする方法あるのかな~と思っていたら、ありました。
pydubというPythonの音声処理用ライブラリを使います。
こちらが参考にした記事。
「How do I mix audio files using python?」
https://stackoverflow.com/questions/7629873/how-do-i-mix-audio-files-using-python
・やり方。まずは仮想環境を構築。
まず、僕の場合はpipenvで仮想環境を作成しました。
pipenv --python3.8
仮想環境を作成したら
.venv/Scripts/activate
でアクティベートさせましょう。
pipenvについては
こちらの記事をどうぞ。
・実際にオーディオをミックスするコードを書く。
お次はコードです。sing.pyというファイルを作り以下のように書きました。
from pydub import AudioSegment sound1 = AudioSegment.from_file("piano.wav") sound2 = AudioSegment.from_file("miku.wav") output = sound1.overlay(sound2, position=0) # save the result output.export("mixed_sounds.wav", format="wav")
sing.py
同じフォルダの中に、
miku.wav
piano.wav
というファイルを置きます。
pydubというライブラリを入れる必要があるので
pipenv pydub
でインストール。
そして
python sing.py
というコマンドを打つと
mixed_sounds.wav
というファイルが生成されます。
聞いてみると2つのオーディオファイルが合成されてミキシングされているのが確認できるかと思います。
デモ:(「ミクはここだよ~」と急に流れるのでご注意下さい)
Pythonでミキシングしました!
2つのオーディオファイルをプログラムでミックスして1つのオーディオファイルにしています。
mp3ファイルではなぜか動かなかったので、wavファイルで行っています。ffmpegもwavなら必要ないっぽい。 pic.twitter.com/5g4qJmaR5Z
— りーず Leez(そーめる) (@so_meru) December 3, 2020
今回は使いませんでしたが、ffmpegというものをパソコンに入れるとmp3も扱えるようになれるそうです。
mp3でもやろうとしたんですが、上手く動かなかったので、今回はwavファイルの方法のみになります。
Windows10でffmpeg最新バージョンをダウンロードする方法!使い方も紹介 https://t.co/IuAeXMnld0
— りーず Leez(そーめる) (@so_meru) December 3, 2020
以上です。何かの参考になれば幸いです!
参考:「pythonで音声処理」
https://qiita.com/nyancook/items/786cffd0b07bad8b4444
「PythonのPydubを利用して音声ファイルを処理する方法」
https://techacademy.jp/magazine/39369
なにか間違い等ございましたら @so_meru までご連絡いただけると幸いです。