📚

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