Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

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を利用して音声ファイルを処理する方法を現役エンジニアが解説【初心者向け】

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村</