音楽の特徴量抽出入門 — 理論・手法・実践ガイド(MIR向け)

特徴量抽出とは何か:音楽情報処理における位置づけ

特徴量抽出(feature extraction)は、生の音声・音楽信号から機械学習や音楽情報検索(MIR: Music Information Retrieval)で扱いやすい数値的表現を取り出す工程です。生の波形は高次元かつ冗長であり、直接学習器に入れると処理効率や汎化性能が低下します。そこで、時間軸・周波数軸・知覚的側面に基づく特徴量を設計・計算し、楽曲のジャンル分類、感情推定、類似検索、コード推定、テンポ検出などの下流タスクを支えます。

前処理:信号を整える

  • サンプリングと量子化:一般的には44.1kHzまたは22.05kHzで扱うことが多い。サンプリング周波数が特徴量に与える影響に注意。
  • モノラル化:多くの特徴量はモノラル信号に対して定義されるため、左右を平均するか片チャネルを使用。
  • ノイズ除去と正規化:高域成分のロールオフ、ゲイン正規化(RMS正規化)など。窓関数(ハミング窓など)を用いてフレーム化。
  • フレーム/ホップ:短時間フーリエ変換(STFT)用にフレーム長(例:1024サンプル)とホップ長(例:512サンプル)を設定。

時間領域の特徴量

時間領域は計算が高速で直感的な指標が多い。

  • ゼロ交差率(Zero-Crossing Rate):信号がゼロを横切る回数。高周波成分の多さや打楽器の検出に有用。
  • RMS(Root Mean Square)エネルギー:フレームごとのエネルギーの代表値。音量やアタックの検出に使用。
  • 短時間エンベロープや振幅包絡:音の立ち上がり・持続・衰退をモデル化。

周波数領域の特徴量

フーリエ変換を基にした特徴量は、音色・スペクトルの性質を捉える。

  • スペクトルセントロイド(Spectral Centroid):「重心周波数」。明るさ(brightness)の指標として使われる。
  • スペクトルロールオフ(Spectral Roll-off):総エネルギーの何%が低域に含まれるかを示す閾値周波数。高域成分の量を示す。
  • スペクトルバンド幅・分散:周波数成分の広がり。
  • スペクトルフラットネス(Spectral Flatness):ピッチがはっきりしている(楽器音)かノイズに近いかを定量化。
  • スペクトルエントロピー:周波数分布の不確実性。複雑さの尺度。

ケプストラム系とMFCC(メル周波数ケプストラム係数)

人間の周波数感度に合わせたメルスケールでのケプストラムは、音色や音素の表現に強力です。特にMFCCは、音声認識だけでなく音楽の音色や楽器分類、検索で広く使われます。一般的な計算手順は、STFT → パワースペクトル → メルフィルタバンク → ログ → DCT(離散コサイン変換)という流れです。低次のMFCCは音色の大域的特徴を、Δ・ΔΔ(時間差分)を加えると動的特徴を表現できます。

調性・和声(トーナル)特徴量

音楽固有の調性や和声情報を捉えるための手法がいくつかあります。

  • クロマ(Chroma)ベクトル:12半音クラスごとのエネルギーを集約。和音推定、キー検出、類似楽曲検索に有効。
  • トネット(Tonnetz)やテンソル表現:和声的近傍関係を捉えるための多次元表現。
  • コード・キー推定:クロマ特徴量を用いて確率モデルや隠れマルコフモデル(HMM)、ニューラルネットで推定。

リズム・テンポ・拍子関連の特徴量

リズム解析は時間・周波数両面の情報を用います。

  • オンセット検出:楽音の立ち上がりを検出し、ビートやノートのタイミングを抽出。
  • テンポ(BPM)推定とビート追跡:低周波の周期成分を利用。メトリックレベル(小節/拍)を考慮する。
  • オートコリレーション・テンポグラム:周期性を可視化してテンポを推定。

高次特徴量と学習ベースの表現

近年はディープラーニングにより生のスペクトログラムやメルスペクトログラムから直接高次特徴を学習するケースが増えています。CNNやCRNNは時間周波数パターンを効果的に捉え、転移学習や事前学習モデル(AudioSetなどに基づく学習済みネットワーク)を利用することで少ないデータでも高性能を達成できます。

  • 自己教師あり学習(SSL):BYOL-A、Wav2Vec系など音響ドメインでの事前学習が注目されています。
  • 表現学習と可視化:t-SNEやUMAPで高次特徴を可視化し、クラスタリングの妥当性を検討。

特徴量の正規化・次元削減・選択

特徴量はアルゴリズムの入力前に適切な正規化が必要です。標準化(Zスコア)や最小最大スケーリング、対数圧縮(エネルギー値など)は一般的です。次元削減は計算効率や過学習防止のために用いられます(PCA、LDA、オートエンコーダ)。また、特徴選択(情報利得、相関分析、ラッソなど)で下流タスクに寄与しない特徴を除去します。

評価指標とベンチマークデータセット

特徴量の有用性を評価する際は、下流タスクでの性能を指標とします。分類タスクなら精度・F1、回帰タスクならRMSE、ランキングタスクならNDCGやMAPなど。また、MIREXやGTZAN、Million Song Dataset、MagnaTagATuneなどのデータセットは研究や比較に広く使われていますが、データ品質(例えばGTZANのラベル誤り)には注意が必要です。

実装ライブラリとツール

  • librosa(Python):音楽特徴量抽出のデファクトスタンダード。STFT、MFCC、クロマ、テンポ推定などを網羅。ドキュメントとチュートリアルが充実しています。
  • Essentia(C++/Python):リアルタイム処理や高性能なMIRアルゴリズムを多数実装。
  • MIRtoolbox(MATLAB):学術的な解析向けのツール群。

実務的なワークフロー(具体例)

  1. 入力信号を読み込み、モノラル化とリサンプリングを行う。
  2. フレーム化(例:2048サンプル、hop=512)し、窓関数を適用。
  3. STFTによるスペクトルを計算、メルフィルタバンクを適用してメルスペクトログラムを取得。
  4. MFCCやΔMFCC、スペクトルセントロイド、クロマなど必要な特徴を抽出。
  5. フレーム単位の特徴を統計量(平均・分散・パーセンタイルなど)で曲レベルに集約するか、時系列モデル(RNN/CNN)へ入力。
  6. 特徴の正規化、次元削減を行いモデル学習・評価。

よくある落とし穴と実践的な注意点

  • データリーク:訓練/検証分割でメタデータが漏れると過大評価につながる。
  • スケーリングの不一致:学習時と推論時で前処理を一致させること。
  • パラメータ感度:フレーム長・窓関数・メルバンク数などが結果に大きく影響するため、ハイパーパラメータ探索は必須。
  • 解釈性と汎化性のバランス:高次特徴(深層表現)は性能が良い反面解釈が難しい場合がある。

将来の潮流

セルフスーパーバイザや大規模事前学習、マルチモーダル(歌詞・MIDIと音響の統合)といった方向が進んでいます。これらは従来の手作り特徴量と組み合わせることで、より堅牢で説明可能なシステムを構築できます。

まとめ:適材適所の特徴量設計を

特徴量抽出は、単なる前処理ではなくシステム全体の性能を左右する重要な工程です。タスクの性質(音色分析、リズム解析、調性検出など)に合わせて時間領域・周波数領域・知覚的スケール・学習ベース表現を組み合わせ、正規化や選択を通じて堅牢な入力を作ることが鍵になります。実装にはlibrosaやEssentiaなどの実績あるライブラリを活用しつつ、評価と検証を丁寧に行ってください。

エバープレイの中古レコード通販ショップ

エバープレイでは中古レコードのオンライン販売を行っております。
是非一度ご覧ください。

エバープレイオンラインショップのバナー

また、レコードの宅配買取も行っております。
ダンボールにレコードを詰めて宅配業者を待つだけで簡単にレコードが売れちゃいます。
是非ご利用ください。
https://everplay.jp/delivery

参考文献