ホーム » TensorFlow » TensorFlow と高速フーリエ変換で音楽ジャンル分類(基本編)

TensorFlow と高速フーリエ変換で音楽ジャンル分類(基本編)

TensorFlow と高速フーリエ変換で音楽ジャンル分類(基本編)

TensorFlow による音楽ジャンル分類を行なってみました。
題材は定番の GTZAN ジャンル・コレクションです。10 のジャンル(ブルース、クラシック、カントリー、ディスコ、ヒップホップ、ジャズ、メタル、ポップ、レゲエ、ロック)に分けられた wav ファイルを分類します。各ジャンルは約 30 秒間の wav ファイルを 100 個ずつ保持しています。

ジャンル分けに微妙感がありますが、データセットは 2002 年のものなのでそこは目をつぶります。

この問題は必ずしも易しくありませんので、今回は基本編として簡単なアプローチのみを取ります。生データで確認後、FFT(高速フーリエ変換)を利用して PSD(パワースペクトル密度)を計算して特徴ベクトルとします。また精度は Top-N で計測します。

生データでトレーニング

最初に生データ入力でのトレーニングを考えます。
sox(音声処理汎用ツール)で wav ファイルの情報を確認しておきますと、サンプリング周波数 22.05 khz のモノラルです :

Input File     : 'blues.00000.wav'
Channels       : 1
Sample Rate    : 22050
Precision      : 16-bit
Duration       : 00:00:30.01 = 661794 samples ~ 2251 CDDA sectors
File Size      : 1.32M
Bit Rate       : 353k
Sample Encoding: 16-bit Signed Integer PCM

そして生データをそのままプロットして視覚的に確認しておきます。最初にジャズ wav ファイル :
genres_raw_jazz

他のジャンルについても確認しておきます :
genres_raw_others

上図の波形を局所的に観察しても分類が可能か判断がつきにくいので、スペクトログラムを表示してみます。
スペクトログラムは時間・周波数とその強さを示す三次元グラフですが、ここでは色相を利用して二次元で表しています :

genres_spectrogram_jazz

genres_spectrogram_others

少しは判別しやすくなりましたが、判別しやすいジャンルとそうでないジャンルがあることも分かります。メタル音楽が識別しやすい一方で、例えばロック・レゲエ・ブルースやディスコ・ポップの組み合わせなどは識別しにくいことが分かります。(人間の聴覚的にも納得できるでしょう)

よって Top-N で精度を判断することにしますが、本来はよりよい検証尺度を先に考慮するべきかもしれません。少なくともジャンル毎、あるいはジャンル vs another ジャンルごとの精度を出すべきでしょう。

ちなみに生データを入力として単純な MLP で試したところ、結果は Top-1 で約 25 %、Top-3 で約 60 % でした。サイコロを振るよりはだいぶマシですが、改良を考えざるを得ない数字でもあります。

FFT (高速フーリエ変換)を利用したトレーニング

定石としては MFCC(メル周波数ケプストラム係数)を用いますが、今回は分かりやすさを優先して FFT(高速フーリエ変換)で PSD(パワースペクトル密度)を計算してこれを特徴ベクトルとしてトレーニングしてみます。

以下はパワースペクトル密度をジャンルのサンプル wav ファイルを元にプロットしたグラフです。
2種類あるのは PSD 軸の指数を変えて描画しているためです :

genres_psd_jazz

genres_psd_jazz2

genres_psd_others

genres_psd_others2

そしてやはり単純な MLP でトレーニングしてみます。下左図は損失でまだトレーニング不足感がありますが、下右図の validation 精度を見ると汎化性能は頭打ちになっています :

genres_loss_ttf2

genres_acc_valid_ttf2

別のテスト用データセットで試した結果は、Top-1 で 38.7 %、Top-3 で 75.7 % でした。
生データに比べれば悪くはない数字ですが、もちろん先端技術による精度には遠く及ばないので改良の余地は多々あります。
これについてはまたいずれ。

 

以上

AI導入支援 #2 ウェビナー

スモールスタートを可能としたAI導入支援   Vol.2
[無料 WEB セミナー] [詳細]
「画像認識 AI PoC スターターパック」の紹介
既に AI 技術を実ビジネスで活用し、成果を上げている日本企業も多く存在しており、競争優位なビジネスを展開しております。
しかしながら AI を導入したくとも PoC (概念実証) だけでも高額な費用がかかり取組めていない企業も少なくないようです。A I導入時には欠かせない PoC を手軽にしかも短期間で認知度を確認可能とするサービの紹介と共に、AI 技術の特性と具体的な導入プロセスに加え運用時のポイントについても解説いたします。
日時:2021年10月13日(水)
会場:WEBセミナー
共催:クラスキャット、日本FLOW(株)
後援:働き方改革推進コンソーシアム
参加費: 無料 (事前登録制)
人工知能開発支援
◆ クラスキャットは 人工知能研究開発支援 サービスを提供しています :
  • テクニカルコンサルティングサービス
  • 実証実験 (プロトタイプ構築)
  • アプリケーションへの実装
  • 人工知能研修サービス
◆ お問合せ先 ◆
(株)クラスキャット
セールス・インフォメーション
E-Mail:sales-info@classcat.com