ピッチ検出とは?仕組み・手法・実装・応用ガイド(深堀)

はじめに — ピッチ(基本周波数)とは何か

音楽における「ピッチ検出」は、音声や楽器の音から基本周波数(fundamental frequency, F0)や知覚上の高さ(pitch)を求める処理です。単に周波数成分を見つけるだけでなく、倍音構造、ノイズ、音の持続性(voicing)や音楽的な文脈を考慮する必要があり、用途によって求められる精度やリアルタイム性が異なります。

ピッチと基本周波数の違い

「基本周波数(F0)」は物理的な周期性の指標で、純粋な正弦波ではその周波数と一致します。一方で「ピッチ」は人間の知覚であり、同じ楽器でもオーバートーンの強さや音の持続、テンポ、聴覚マスクなどにより知覚が変わります。音楽アプリケーションでは通常F0推定を行い、それを知覚的なピッチにマップして解釈します。

用途別に見る要求性能

  • チューニング・計測:高精度(セント単位)、遅延は許容される場合が多い。
  • リアルタイムピッチ補正(Auto-Tuneなど):低遅延かつ頑健な誤検出抑止が必要。
  • 楽譜自動生成(音高推定→ノート化):安定したF0トラッキングと音節境界検出。
  • 多声音源(ポリフォニー)解析:同時発音の分離・根音抽出など、非常に難易度が高い。

主要なアルゴリズム群と原理

ピッチ検出アルゴリズムは大きく時間領域、周波数領域、ハイブリッド(両者の組み合わせ)、および機械学習/深層学習ベースに分けられます。

時間領域手法

  • 自己相関(Autocorrelation): 窓内信号と遅延コピーの相関を取り最大値を検出することで周期性を求める。オクターブ誤検出(倍音に引っ張られる)やウィンドウ長に敏感。
  • 平均差分関数(AMDF): 相関の代わりに差の総和を用いる。計算が軽くリアルタイム向き。
  • YIN(de Cheveigné & Kawahara, 2002): 差分関数を基に累積平均正規化差分関数(cmndf)を導入し、ピーク検出の安定性とオクターブ誤りの低減を図る。現在でも高精度の基準手法のひとつ。
  • pYIN(確率的YIN): YINを基に確率モデルとViterbi等で時系列整合をとる手法。音楽音の連続性を利用して誤検出を抑える。

周波数領域手法

  • FFT+ピーク追跡: スペクトルのピークを見つけて基本周波数を推定する。高周波解像度と時解像度のトレードオフがある。
  • ハーモニック・プロダクト・スペクトラム(HPS): 倍音構造を利用して異なるダウンサンプリングスペクトルを乗算または合成し、共通の基音を強調する。
  • ケプストラム(Cepstrum): スペクトルの対数を逆FFTして周期成分を取り出すことでピッチ候補を得る。声のF0抽出などで古典的に使われる。

ハイブリッド/確率モデル

時間領域と周波数領域の良さを組み合わせたり、隣接フレーム間の整合を確率モデル(HMMやViterbi経路)で解いたりする手法。pYINや各種音楽情報検索(MIR)コミュニティの手法でよく使われます。

深層学習(データ駆動)手法

近年は畳み込みニューラルネットワーク(CNN)や時系列モデルを用いて、ウェーブフォームやスペクトログラムから直接F0を回帰または分類する手法が高精度を示しています。例としてCREPE(CNNベースのピッチ推定)は生波形を受け取り高いフレーム精度を達成します。深層学習はノイズや多様な音色への適応力が高い一方、大量のラベル付きデータと多くの計算資源を要します。

実践上の問題点と対策

  • オクターブ混同(倍音に引っ張られ下位・上位オクターブを間違える): YINやHPS、深層学習での特徴学習、隣接フレームの整合(Viterbi)などで改善。
  • 音量や信号対雑音比(SNR): ノイズリダクション、短時間のスムージング、または学習ベースの堅牢化。
  • ビブラートやグリッサンド: 高時間分解能と滑らかなトラッキング、ポスト処理(ローパス/メディアンフィルタ)で対応。
  • ポリフォニー(和音や合唱): 単一F0推定は困難。多声音高推定(multi-pitch estimation)や優勢旋律抽出(predominant melody extraction)アルゴリズムが必要。
  • ウィンドウサイズのトレードオフ: 長窓は低周波の分解能を上げるが時間分解能を下げる。用途に合わせて調整すること。

評価指標とベンチマーク

ピッチ検出の評価では以下の指標がよく使われます。

  • Voicing recall/false alarm: 音として検出すべきフレームを正しく検出できるか。
  • Raw Pitch Accuracy / Gross Pitch Error: 例えば許容誤差(50centsなど)内で推定できている割合。
  • Fine Pitch Error: 許容誤差内での細かな平均誤差(セント単位)。

ベンチマークにはMIREXのピッチ課題や、MedleyDB、MUSDB、RWCといった公開データセットが用いられます。評価に用いるデータセットはジャンルや録音条件が多様であることが重要です。

実装上の実用的なヒント

  • 前処理: DCオフセット除去、窓関数(ハミング等)、適切なハイパス/ローパスで不要成分を除く。
  • フレーム長とホップ: 音楽用途では10〜40ms程度のフレームと、重なりを持たせたホップ(例:フレーム長の1/4〜1/2)が使われることが多い。
  • パラメータ調整: 最小/最大周波数(例 50Hz〜2000Hz)、閾値、補間方式(パラボリック補間等)を用途に合わせる。
  • ポストプロセス: 短い誤検出パッチを除去するメディアンフィルタ、または音楽的制約を用いる動的プログラミング。
  • 複数手法の組合せ: 時間領域と周波数領域の結果を融合することで堅牢性を上げられる。

代表的なツールとライブラリ

  • librosa (Python): pyin等、YIN系・音楽向けアルゴリズムの実装があり実験が容易。
  • aubio: リアルタイム向けの軽量ライブラリで複数のピッチ検出器を提供。
  • CREPE: 深層学習ベースの高精度ピッチ推定(GitHub実装あり)。
  • Essentia: 音楽情報処理ライブラリでピッチ検出・旋律抽出などを含む。
  • Praat: 音声分析の老舗ツールで、F0トラッキングと音声学的解析に強い。

ポリフォニーと旋律抽出について

単音(モノフォニック)音のF0推定は比較的成熟していますが、ポリフォニック(和音や重なった楽器)では難易度が跳ね上がります。優勢旋律抽出(メロディ抽出)アルゴリズムは、スペクトルの倍音構造、時間的な連続性、音高の一貫性といった特徴を使って「主旋律」を抜き出します。多声音高推定はさらに複雑で、確率モデルや非負値行列因子分解(NMF)、深層学習を組み合わせる研究が進んでいます。

応用例

  • 自動チューニング・ピッチ補正(ヴォーカルの整音)
  • 演奏解析・練習支援アプリ(音程の正確さや安定性の可視化)
  • 自動譜面起こし・MIDI変換
  • 音楽検索・メロディ検索(ハミング検索など)
  • 発声解析や音声プロソディー解析(音声学・訓練用途)

限界と今後の展望

現在の技術でも単音のF0推定は高精度化が進んでいますが、雑音混入やポリフォニー、極端な音色変化(例:打楽器の非定常成分)には依然として苦手です。深層学習の進展により、多様な音色や環境に強いモデルが開発されつつありますが、学習データの偏りや教師データの正確性が性能に大きく影響します。将来は物理モデル、確率的音楽知識、学習ベース手法のハイブリッドがさらに普及すると予想されます。

まとめ

ピッチ検出は単純に周波数を測る以上の複雑さを持つタスクで、用途によって最適な手法が変わります。YINや自己相関のような古典手法は軽量かつ理解しやすく、深層学習は堅牢性と精度で優れます。実装では前処理・ウィンドウ設定・ポストプロセスが結果に大きく影響するため、目的に合わせた総合的な設計が重要です。

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

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

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

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

参考文献