WAVファイルのミキシング
ライブラリpydubを使うことで音声ファイルを操作できます。ボーカルのみ、ピアノのみの2つのwavファイルを合成しボーカルに伴奏を付けます。
環境
- windows10 home
- Jupyter notebook 6.4.11
- Python 3.10.4
- pydub 0.25.1
準備
ライブラリpydubをインストールします。
以下の2つのwavファイルを、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。vocal.wavは、ニューラルネットワークを用いたフリーの歌声シンセサイザーNEUTRINOで生成した合成音声による歌、piano.wavは同じメロディラインをピアノで演奏したものです。
vocal.wav
piano.wav
コード
from pydub import AudioSegment # ボーカルとピアノのwavファイルを読みだす vocal = AudioSegment.from_file('vocal.wav') piano = AudioSegment.from_file('piano.wav') # ミキシングとファイル出力 output = vocal.overlay(piano, position=0) output.export('song.wav', format='wav')
実行結果
2つのwavファイルがミックスされ、ボーカルにピアノ伴奏が付きます。
このままだとピアノの音が大きすぎるので調整します。
コード
読み込んだオーディオオブジェクトに対して-20とすることで音量を20dB下げることができます。
from pydub import AudioSegment # ボーカルとピアノのwavファイルを読みだす vocal = AudioSegment.from_file('vocal.wav') piano = AudioSegment.from_file('piano.wav') piano -= 20 # ピアノの音量を20dB下げる # ミキシングとファイル出力 output = vocal.overlay(piano, position=0) output.export('song.wav', format='wav')
実行結果
ピアノの音量が下がりました。
以下のサイトを参考にさせていただきました
stackoverflow > How do I mix audio files using python?
TechAcademyマガジン > PythonのPydubを利用して音声ファイルを処理する方法を現役エンジニアが解説【初心者向け】