用語集
オーディオ解析の用語をわかりやすく解説します。
オーディオ解析は初めてですか?
まずオーディオ基礎から始めて、用途に応じたセクションを探索してください。
オーディオ基礎
サンプルレート
何か: 1秒間に何回音を測定するか。動画のフレームレートのようなもの - 多いほど詳細。
| サンプルレート | 品質 | 主な用途 |
|---|---|---|
| 44,100 Hz | CD品質 | 音楽再生 |
| 48,000 Hz | 放送品質 | 動画、ストリーミング |
| 22,050 Hz | 解析用 | ほとんどの解析に十分 |
なぜ重要?
高いサンプルレートはより高い周波数をキャプチャできます(サンプルレートの半分まで)。44.1kHzは約22kHzまでキャプチャでき、人間の可聴域をカバー。
モノラル / ステレオ
- モノラル: 1つのオーディオチャンネル - 片耳で聴くようなもの
- ステレオ: 2チャンネル(左/右) - 空間的な音
INFO
libsonare はモノラルオーディオを処理します。ステレオは左右チャンネルの平均を取って自動変換されます。
振幅
ある瞬間の音の「大きさ」。
- libsonare では: -1.0 〜 1.0 の範囲に正規化
- 0 = 無音
- ±1.0 = 最大値(超えるとクリッピング)
dB(デシベル)
オーディオレベルを測る対数スケール。-6 dB ごとに音量が半分に聞こえます。
| レベル | 意味 |
|---|---|
| 0 dB | 最大(フルスケール) |
| -6 dB | 半分の音量 |
| -20 dB | 音楽の典型的なRMS |
| -60 dB | ほぼ無音 |
TIP
人間は音量を対数的に感じるため、表示や比較にはdBを使いましょう。
スペクトル解析
STFT(短時間フーリエ変換)
オーディオ解析の基盤。 音声を小さな重なり合うチャンク(フレーム)に分割し、各フレームにどの周波数が含まれるかを明らかにします。
音声 → [フレーム1][フレーム2][フレーム3]... → フレームごとの周波数成分
↓ ↓ ↓
スペクトログラム(2D: 時間 × 周波数)主要パラメータ
| パラメータ | デフォルト | 効果 |
|---|---|---|
| n_fft | 2048 | ウィンドウサイズ。大きい = 周波数の詳細↑、時間の詳細↓ |
| hop_length | 512 | フレーム間のギャップ。小さい = フレーム数↑、計算量↑ |
トレードオフ: 時間分解能と周波数分解能を同時に完璧にすることはできません(不確定性原理)。
スペクトログラム
時間経過に伴う周波数成分を示す「ヒートマップ」。
- 横軸: 時間
- 縦軸: 周波数
- 色/明るさ: 強度(大きい = 明るい)
可視化のヒント
スペクトログラムは音の「指紋」のようなもの - 音の種類ごとに特徴的なパターンがあります。
メルスペクトログラム
人間の聴覚特性に合わせて調整されたスペクトログラム。低周波数はより敏感に聞こえるため、より高い分解能を持ちます。
「メル」とは?
「メロディ」に由来 - メル尺度は等間隔が人間の耳に等しく聞こえるように設計されています。
最適な用途:
- 機械学習の入力(ジャンル分類、ムード検出)
- オーディオビジュアライゼーション
- 音声解析
MFCC(メル周波数ケプストラム係数)
音色のコンパクトな「要約」 - フレームあたりたった13〜20個の数値で、音の本質的な特徴を捉えます。
たとえると...
スペクトログラムが高解像度写真なら、MFCCは本質的な特徴を捉えた低解像度サムネイルです。
使用例:
- 音声認識(Siri、Alexa)
- 話者識別
- オーディオフィンガープリンティング(Shazam風)
クロマ / クロマグラム
すべての周波数を、オクターブを無視して12のピッチクラス(C, C#, D... B)にマッピング。
すべての音 → 12ビン: | C | C# | D | D# | E | F | F# | G | G# | A | A# | B |たとえると...
すべてのオクターブを重ねたピアノ鍵盤 - どの音が鳴っているかはわかるが、どのオクターブかはわからない。
最適な用途:
- コード検出
- キー検出
- カバー曲の発見(同じコード、異なるアレンジ)
CQT(定Q変換)
音楽的な間隔を使用するSTFTの代替 - 各オクターブが同じ数のビンを持つ(ピアノの鍵盤のように)。
STFT vs CQT
| 特徴 | STFT | CQT |
|---|---|---|
| 周波数間隔 | 線形(等しいHz) | 対数(等しい半音) |
| 最適用途 | 一般的な解析 | 音楽/ピッチ解析 |
| 速度 | 高速 | 低速 |
リズム解析
BPM(Beats Per Minute)
音楽のテンポ - ビートがどれだけ速く脈打つか。
| BPM範囲 | ジャンル例 |
|---|---|
| 60-80 | バラード、アンビエント、チル |
| 90-110 | ヒップホップ、R&B |
| 110-130 | ポップ、ロック、EDM |
| 130-150 | ハウス、テクノ |
| 160-180 | ドラムンベース、ハードコア |
よくある落とし穴
BPM検出は実際のテンポの半分や2倍を返すことがあります。120 BPMの曲が60や240として検出されることも。
ビート
足でタップするリズミカルなパルス。ビート検出は各ビートの正確なタイムスタンプを見つけます。
用途:
- ビート同期ビジュアライゼーション
- DJ自動ミキシング
- リズムゲーム
- ビートに合わせた動画編集
オンセット
ビートだけでなく、すべての音符、ドラムヒット、トランジェントなど、あらゆる音イベントの開始。
ビート vs オンセット
ビートは規則的なパルス(1-2-3-4)。オンセットはオフビートのハイハットやシンコペーションの音も含め、すべてをキャッチ。
用途:
- オーディオからMIDIへの変換
- ドラム採譜
- サンプルスライシング
拍子(タイムシグネチャ)
リズムの枠組み: 1小節の拍数 / 音価
| 拍子 | 雰囲気 | 例 |
|---|---|---|
| 4/4 | 標準的、安定 | ほとんどのポップ/ロック |
| 3/4 | ワルツ、流れるような | クラシックワルツ |
| 6/8 | 複合、揺れる | バラード、一部のロック |
ハーモニー解析
キー(調)
楽曲の調性的なホームベース。
- ルート: 中心となるピッチ(C, D, E, F, G, A, B)
- モード: メジャー(明るい/楽しい)またはマイナー(暗い/悲しい)
キーを理解する
「Cメジャー」とは、Cがホームベースでスケールが明るく聞こえること。「Aマイナー」とは、Aがホームベースでスケールが暗く聞こえること。
曲は通常、キーのルートコードに戻ると「解決した」感じがします。
なぜ重要:
- DJはハーモニックミキシングにキーを使用(互換性のあるキーの曲はスムーズにブレンド)
- 歌手の音域に合わせた移調
- 互換性のあるキーでの音楽レコメンデーション
コード(和音)
同時に演奏される複数の音がハーモニーを作る。
| 種類 | 響き | 構成音(Cの場合) |
|---|---|---|
| メジャー | 明るい、楽しい | C-E-G |
| マイナー | 暗い、悲しい | C-Eb-G |
| セブンス | ジャジー、緊張感 | C-E-G-Bb |
| ディミニッシュ | 緊張、不安定 | C-Eb-Gb |
コード進行
曲を通じたコードのシーケンス。
有名なコード進行
| 名前 | パターン | 曲例 |
|---|---|---|
| ポップ進行 | I-V-vi-IV | "Let It Be"、"No Woman No Cry"、他多数 |
| ジャズ ii-V-I | ii-V-I | ジャズの標準的なエンディング |
| 50年代進行 | I-vi-IV-V | "Stand By Me"、ドゥーワップ |
オーディオエフェクト
HPSS(調和-打楽器音源分離)
オーディオを2つの成分に分離:
| 成分 | 含まれるもの | 用途 |
|---|---|---|
| ハーモニック | ボーカル、メロディ、持続音 | よりクリーンなコード検出 |
| パーカッシブ | ドラム、トランジェント、クリック音 | リズム解析、ドラム抽出 |
TIP
ハーモニック成分でコード検出を実行すると、ドラムがアルゴリズムを混乱させないため、より良い結果が得られます。
タイムストレッチ
ピッチを変えずに速度を変更。
| レート | 結果 |
|---|---|
| 0.5 | 半分の速度(2倍の長さ) |
| 1.0 | オリジナル |
| 2.0 | 2倍の速度(半分の長さ) |
用途: 難しいパッセージを学ぶためにスローダウン、DJミキシングでテンポを合わせる。
ピッチシフト
速度を変えずにピッチを変更。 半音単位で測定。
| 半音 | 結果 |
|---|---|
| +12 | 1オクターブ上 |
| +7 | 完全5度上 |
| -12 | 1オクターブ下 |
用途: ミキシング用のキーマッチング、ボーカルエフェクト、移調。
ノーマライズ
オーディオを目標の音量レベルに調整。
- ピークノーマライズ: 最も大きい瞬間を目標に設定
- RMSノーマライズ: 平均音量を目標に設定
ストリーミング解析
バッチ vs ストリーミング
どちらを使うべき?
| アプローチ | 最適な用途 | 特徴 |
|---|---|---|
| バッチ | 録音済みファイル | 完全解析(BPM、キー、コード、セクション) |
| ストリーミング | ライブ音声、リアルタイムアプリ | フレームごとの特徴、プログレッシブ推定 |
StreamAnalyzer
libsonare のリアルタイムプロセッサ。音声をチャンクごとに到着順に解析。最適な用途:
- ライブビジュアライゼーション
- リアルタイムフィードバック
- プログレッシブBPM/キー/コード検出
フレーム
解析出力の単一の「スライス」。以下を含む:
- メルスペクトログラム値
- クロマ特徴(12ピッチクラス)
- オンセット強度
- スペクトル特徴(明るさ、ノイズ度、エネルギー)
プログレッシブ推定
処理されるオーディオが増えるにつれて時間とともに精度が向上するBPM、キー、コードの推定。
仕組み
約5秒後: 大まかなBPM推定、低い信頼度 約15秒後: 安定したBPM、キーが現れ始める 約30秒後: 高信頼度の推定、コード進行が検出される
ピッチと周波数
周波数(Hz)
1秒あたりの振動数 - 高い周波数 = 高いピッチ。
| 音 | 周波数 |
|---|---|
| A4(標準チューニング) | 440 Hz |
| C4(中央のC) | 261.63 Hz |
| A3(A4の1オクターブ下) | 220 Hz |
周波数の倍増
オクターブごとに周波数は2倍になります。A3 = 220 Hz、A4 = 440 Hz、A5 = 880 Hz。
MIDIノート番号
音符の標準的な数値表現:
- 60 = 中央のC(C4)
- 69 = A4(440 Hz)
- 各半音 = +1
ピッチクラス
オクターブを無視した12音のいずれか: C, C#, D, D#, E, F, F#, G, G#, A, A#, B
YIN / pYIN
オーディオの基本ピッチを検出するアルゴリズム。
| アルゴリズム | 速度 | 精度 | 最適用途 |
|---|---|---|---|
| YIN | 高速 | 良好 | リアルタイム |
| pYIN | 低速 | より良い | オフライン解析 |
スペクトル特徴
クイックリファレンス
| 特徴 | 測定対象 | 高い値の意味 |
|---|---|---|
| スペクトル重心 | 明るさ | 明るい、高音寄り |
| スペクトル帯域幅 | 周波数の広がり | 多くの周波数が存在 |
| スペクトル平坦度 | ノイズ vs 調性 | ノイズ的(1.0 = ホワイトノイズ) |
| ゼロ交差率 | 信号の活性度 | パーカッシブ/ノイズ的 |
| RMSエネルギー | 音量 | 大きいセクション |
スペクトル重心
周波数の**「重心」** - 明るさを示す。
- 低い重心 → 暗い、低音の多い音(ベースギター、キックドラム)
- 高い重心 → 明るい、クリスプな音(ハイハット、シンバル)
スペクトル平坦度
オーディオがノイズ的か調性的か。
- 0 = 純音(サイン波)
- 1 = ホワイトノイズ(すべての周波数が等しい)
RMSエネルギー
時間窓における平均音量。大きい/静かなセクションの検出に便利。
構造解析
セクション
曲の明確な部分:
| セクション | 目的 | 典型的な長さ |
|---|---|---|
| イントロ | 雰囲気を設定 | 4-16小節 |
| ヴァース | ストーリーを語る | 8-16小節 |
| プリコーラス | 緊張を高める | 4-8小節 |
| コーラス | メインフック、印象的 | 8-16小節 |
| ブリッジ | コントラスト、休憩 | 4-8小節 |
| アウトロ | 終息 | 4-16小節 |
フォーム
文字列としての全体構造。
一般的なフォーム
| フォーム | 構造 | ジャンル |
|---|---|---|
| ABABCB | ヴァース-コーラス-ヴァース-コーラス-ブリッジ-コーラス | ポップ |
| AABA | ヴァース-ヴァース-ブリッジ-ヴァース | ジャズスタンダード |
| AAA | ヴァース-ヴァース-ヴァース(有節形式) | フォーク、ブルース |
音色解析
音色(ティンバー)
音の**「色」** - 同じ音の高さと大きさでも、ピアノとギターの音を区別するもの。
主な音色特徴
| 特徴 | 説明 | 高い = | 低い = |
|---|---|---|---|
| ブライトネス | 高周波成分 | クリスプ、シャープ | 暖かい、まろやか |
| ウォームス | 中低域の存在 | フル、リッチ | 薄い、空洞的 |
| デンシティ | 同時発音数 | フルアレンジ | ミニマル、疎 |
関連項目
- JavaScript API リファレンス - 完全なAPIドキュメント
- 使用例 - 実践的な使用例
- はじめに - クイックスタートガイド