音楽分析に活用するスペクトログラム入門:原理・設定・実践的読み取り方

イントロダクション:スペクトログラムとは何か

スペクトログラムは、音声や音楽信号の時間変化する周波数成分を可視化するための基本的かつ強力なツールです。横軸に時間、縦軸に周波数、色や明暗で振幅(エネルギー)を表現することで、音のピッチ、倍音構造、アタックや減衰、ノイズ成分などを直感的に把握できます。音楽制作、音響分析、音声認識、音楽学(音楽情報検索、音楽理論の実証的研究)など幅広い分野で利用されています。

基礎原理:短時間フーリエ変換(STFT)とスペクトログラムの生成

スペクトログラムは通常、短時間フーリエ変換(STFT: Short-Time Fourier Transform)を用いて作成されます。信号を短い時間窓に分割し、各窓に対してフーリエ変換を行うことで時間分解能と周波数分解能を同時に得ます。得られた複素スペクトルの大きさ(振幅スペクトル)をプロットしたものが振幅スペクトログラム、対数振幅(dBスケール)を取るとより視認性がよくなります。

主要パラメータとその音響的意味

  • 窓長(window size):窓長が長いほど周波数分解能が高く(周波数の細かな差を識別)、時間分解能が低くなります。逆に短い窓長は時間分解能が高く、トランジェント(打撃音やアタック)を捉えやすくなります。音楽では用途に応じて両者をトレードオフする必要があります。
  • ホップサイズ(hop size / hop length):隣接窓のずらし量。小さくすれば時間方向のサンプリングが密になり、時間分解能が向上しますが、計算量が増えます。
  • 窓関数(window function):ハミング、ハニング、ブラックマンなど。サイドローブの抑制やメインローブ幅に影響し、スペクトルの分解能や漏れ(spectral leakage)に関係します。
  • ゼロパディング(zero padding):周波数軸上の表示解像度を滑らかにするために使われますが、実際の周波数分解能は窓長に依存します。
  • 振幅スケール(線形/対数):対数(dB)表示は人間の聴感に近く微小成分が見えやすくなります。周波数軸も対数スケールにすると低域の変化を見やすくなります。

周波数軸の扱い:線形、対数、メル、CQT

音楽分析では周波数軸のリスケーリングが重要です。

  • 線形周波数:フーリエ変換の自然な出力。高周波が均等に表現されるため、倍音構造や正確な周波数測定に有利。
  • 対数周波数:音楽的には低域の細かな変化を強調でき、ピッチ(音高)分析に適する。
  • メル尺度(Mel):人間の聴覚特性を模した尺度。メルスペクトログラムは音楽情報検索や音声認識で頻繁に用いられます。
  • Constant-Q Transform(CQT):周波数解像度が低域で高く高域で粗くなるため、音楽の半音階に沿った解析が可能。和音や音高の視覚化に適しています。

スペクトログラムの読み方:音楽的特徴の識別

スペクトログラムから読み取れる代表的な音楽的情報は次の通りです。

  • 基本周波数と倍音:周期音(楽器の音)は基本周波数(ピッチ)とその整数倍の倍音列が縦に並ぶパターンとして現れます。倍音の強さ比は楽器の音色(ティンバー)を決定します。
  • アタックとトランジェント:打撃音やピアノのようなアタックの鋭い音は時間方向に短く広がる高周波成分を持ちます。逆に弦楽器のサステインは時間方向に持続する縦縞として見えます。
  • ビブラートとポルタメント:ピッチがゆらぐ現象は基本周波数の上下の揺れとして観察できます。短周期の揺れならば周波数方向の細かいジグザグとして現れます。
  • フォームants(声の共鳴):歌声や声楽では、母音ごとに共鳴ピークが現れ、それがスペクトログラムの縦方向に強い帯域として見えます。
  • パーカッシブ音:短時間で広帯域にエネルギーを持つため、スペクトログラム上は“点”や短い横に広がる帯として現れます。
  • ノイズ成分と雑音:持続的な高周波ノイズはスペクトログラム全体に広がる明るい領域として確認できます。機材ノイズやハムは特定の周波数に縞模様として出ます。

音楽分析でよく使う指標(特徴量)

スペクトログラム自体を元に、より抽象化した特徴量を計算して機械学習や自動解析に活用します。

  • スペクトルセントロイド(中心周波数) — 音の“明るさ”を表す指標
  • スペクトルフラットネス — トーンとノイズの判別
  • スペクトルロールオフ — 高周波のエネルギー分布
  • スペクトルフラックス — 時間方向のスペクトル変化量(オンセット検出に有効)
  • MFCC(メル周波数ケプストラム係数) — 音色や音声の特徴抽出で広く利用される表現
  • クロマ(chroma)特徴 — 半音階成分の強さを示し、和音や調性分析に役立つ

可視化の実践上の注意点とベストプラクティス

  • 表示スケールの明示:振幅が線形か対数(dB)か、周波数軸が線形か対数かを明示することで解釈の誤りを防ぎます。
  • ダイナミックレンジの調整:極端に強い成分があると微小成分が埋もれるため、dBクリッピングや色マッピングの下限を設定することが重要です。
  • 色彩設計:カラーマップは視認性に影響するため、色盲対応や印刷向けの配慮を行うと良いです。一般的には単峰〜二峰のカラーマップが推奨されます。
  • 窓関数と冗長性:解析目的に応じて窓種とホップ長を決め、必要なら複数のパラメータで比較して解釈の確度を上げます。

実際の応用例(音楽制作・研究での活用)

  • ミックスとマスタリング:スペクトログラムで周波数帯域の過密や不要な共鳴を視覚化し、EQやマスキングの対策を行う。
  • 音源の分離・リミックス:ボーカルのオンセットやピッチ安定性を確認して、音源分離やステム作成の手がかりにする。
  • 音楽情報検索(MIR):和音推定、メロディ抽出、ビート検出などの前処理としてスペクトログラムを特徴抽出に使用する。
  • 音色設計と楽器研究:倍音構造や励起・減衰特性を比較し、楽器の物理的性質を定量化する。

ツールとライブラリ

スペクトログラム作成や解析に使える代表的なツールとライブラリを紹介します。用途に応じて選びます。

  • Audacity(GUI) — 手軽な可視化と編集
  • Sonic Visualiser(GUI) — 音楽学や音声分析向けの詳細な可視化機能
  • Praat(音声解析) — フォルマントやピッチ解析に強み
  • Librosa(Pythonライブラリ) — STFT、CQT、メルスペクトログラム、特徴量抽出が豊富
  • MATLAB / Octave — 高度な信号処理・カスタム解析

限界と注意点

スペクトログラムは非常に有用ですが、万能ではありません。代表的な限界は次の通りです。

  • 時間–周波数トレードオフ:窓長による限界は避けられません。短時間イベントと周波数分解能の両立は不可能です。
  • スペクトルリーケージ:窓関数選択や非周期信号によって偽の成分が現れることがあります。
  • 解釈の主観性:可視化は解釈に依存し、同じ図でも目的や専門知識によって読み方が異なります。
  • 位相情報の喪失:振幅スペクトログラムは位相情報を失うため、完全な音再構成には位相推定が必要です(位相グラフィックスや複素スペクトログラムの扱いが必要)。

実践的なワークフロー例

短いワークフロー例として、楽曲のボーカル成分を視覚的に評価して編集する手順を示します。

  • 1) サンプルをロードし、標準サンプリング(44.1 kHzなど)でSTFTを計算する。
  • 2) 複数の窓長(例:512サンプル、2048サンプル)でスペクトログラムを作成し、時間・周波数特性を比較する。
  • 3) dBスケールに変換してダイナミックレンジを整え、不要なノイズ帯域を特定する。
  • 4) フィルタリングやEQでノイズを減衰させ、再度スペクトログラムで変化を確認する。
  • 5) アタックやハーモニクスの損失を避けるため、処理後の聴感と視覚両方で検証する。

まとめ

スペクトログラムは音楽信号の時間–周波数特性を直感的に示す強力なツールです。STFTの基本、窓長やホップの選び方、周波数スケール(線形・対数・メル・CQT)による用途の違い、そして具体的な読み取り方(倍音・アタック・ビブラート・フォームantなど)を理解すれば、制作や研究において大きな効果を発揮します。可視化の際は表示スケールやダイナミックレンジの設定、窓関数の影響など実務的な注意点を押さえることが重要です。

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

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

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

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

参考文献