音楽情報処理 第10回
音楽情報処理
第10回:音楽数理情報処理の技術1:ピッチ抽出の諸問題と単音の基本周波数(f0)推定(6/21実施)
目標
音楽音響信号の解析において最も重要な課題の一つにピッチ抽出がある。楽音の多くが、基本周波数(f0)、その倍音系列から構成されることから、技術的には f0推定と呼ばれることが多い。
ピッチ推定がどのような課題なのかということと、単声の楽音(声)に対する代表的なピッチ推定技術の概略、また、演習を通じてピッチ推定の基礎を学ぶ。
- 音楽音響解析とf0推定
- 時間波形に着目した基本手法
- Zero Cross法(Peak to Peak法)
Zero Cross法は信号がマイナスからプラス(もしくはその逆)に変わった地点、Peak to Peak法は信号の最大値のインターバルを基にf0を推定
- 自己相関関数の応用
元の信号と、t 時間ずらした信号での相関係数を計算する。周期信号は一波長ずらした信号は元の信号に重なるという考え方に基づき、相関係数を指標としてf0を推定
- 調波構造に着目した基本手法
- STFT, 櫛形filter, wavelet変換度など
周波数解析によってf0を推定する手法。楽音ではf0にパワーが集中することことが多い。誤認識も多いが、パワーが最も大きい周波数binをf0として推定
- Harmonic Summation
基本周波数を仮定し、倍音成分に一致する周波数binのパワーを加算、その最も大きくなるようsな基本周波数をf0として推定
- ケプストラム
フーリエ変換によって得られた調波構造binが一定間隔に並ぶというという性質に着目し、対数パワースペクトルのフーリエ逆変換によりf0を推定
- 高性能f0推定実装例(開発当初は重さが問題になったものもあるが、現在のマシンパワーからすれば実時間動作クラス)
事前準備
今回、ミニレポート演習課題として基礎的なピッチ推定法の実装・動作確認に取り組んでもらいます。
プログラミングのスキルとして「配列」のハンドリングとファイルの読み込みが必要となります。
プログラミング環境については今後の課題の実施の観点から Python の利用を推奨します。(以下、初めての人向け情報)
もちろん他の言語でも実施可能です。
- 上記の事前準備を完了しておくこと
課題
- 音響解析サンプルコード(Python) を利用し、自身が用意した音源(モノフォニー)に対してピッチ解析を行え。
- 自身で、Zero Cross法 もしくは、自己相関関数に基づくピッチ抽出法を実装し、「ぺ」音声を入力として、実行結果を確認せよ。誤検出についてどのような要因によるものか考察せよ。
2024.6.9
katayose@kwansei.ac.jp