📚
NMFを用いたギター音源からベース音源の生成
NMFを用いたギター音源からベース音源の生成
概要
本研究では、ギター音源を入力とし、非負値因子行列分解(NMF)を活用してベース音源を生成するニューラルネットワークを構築しました。本記事では、その実装方法について説明します。
提案モデルの全体構成
使用方法
1. 必要なもの
以下のURLから、本プログラムを実行するためのGoogle Drive内にあるGoogle Colabのプログラムを取得してください。
Google Drive
ダウンロード後、以下の手順で各ノートブックを実行してください。
2. 音源分離
音源分離.ipynb
を使用し、任意の音源に対して音源分離を適用し、ギター音源とベース音源を取得します。
3. 雑音除去
HPSS_and_BandpassFilter.ipynb
を実行し、音源分離後のベース音源に対してHPSSおよびバンドパスフィルタを適用し、雑音を除去した音源を生成します。
4. NMFの適用
-
NMF.ipynb
にて、ベースの全音域をカバーする基底行列を作成します。 - 生成したベース音源に対してNMFを実行し、アクティベーション行列を取得します。
5. モデルの学習・予測
モデル.ipynb
を使用し、取得したギター音源とベース音源を用いてVAEを学習させます。その後、学習済みのモデルにギター音源を与えることで、予測結果としてベースのアクティベーション行列を生成させます。
6. アクティベーション行列の後処理
アクティベーション行列後処理.ipynb
を実行し、予測されたベースのアクティベーション行列に対して後処理を適用します。その後、基底行列と掛け合わせ、音源に戻すことで、入力のギター音源に適したベース音源を生成します。
注意事項
- 上記の手順通りに実行すれば、正常に動作するよう設計されています。
- ファイルの保存先のパスなどは、ご自身の環境に応じて適宜設定してください。
- 本プログラムはWAVフォーマットを前提としています。他のフォーマット(MP3, FLAC等)を使用する場合は、事前にWAVへ変換してください。
Discussion