楽曲検索に関するソフトウェア

MARSYAS : 楽曲検索システムのためのフレームワーク

http://marsyas.sness.net/about/publications

Music and Audio Retrieval Tools

http://japanese.osstrans.net/software/maart.html
make の方法を以下に示す.

  1. tar zxvf maart-src-20061005.tar.gz
  2. cd maart
  3. gmaek all (注)FC5の場合,make でなく gmake を使うとうまくいくみたいね.

しかも maart には C++ クラスライブラリも付属し,他プログラムから呼び出し可能.

get_f0s

F0を抽出するプログラム(単体で動作)
基本周波数を推定するプログラムに自信がないため,Web で調べていたら get_f0s が出てきた.
http://sourceforge.jp/frs/index.php?group_id=2401
ちなみに get_f0 という名称のソフトも存在する.こちらもコマンドライン

いずれも無声区間を pitch=0 と判定してくれる優れものアルゴリズム.

get_f0

http://www.speech.kth.se/wavesurfer/links.html から esps.zip を落とすと,その中に get_f0.c が含まれる.また,アルゴリズムがhttp://www.clsp.jhu.edu/ws2000/presentations/preliminary/paul_bamberg/pitch_tracking.shtml に述べられている.
さらに,get_f0 に関する以下の記述を見つけた.
武藤は WAV データから周波数を検出するために ACF を利用しているが,get_f0 関数を使ってもよいのではないか? いや,get_f0 の方が確実かも.

the ESPS/waves+ get_f0 algorithm is the same as RAPT (Robust Algorithm for Pitch Tracking).
RAPT is described by David Talkin in chapter 14 of the book "Speech Coding and Synthesis", edited by W.B. Kleijn and K.K. Paliwal, ISBN: 0-444-82169-4.
Basically, RAPT uses normalised cross-correlation of the waveform to obtain f0 candidates. Dynamic programming is then used to find the optimal f0 track.

I also used the get_f0 utility from the Entropic Waves software package to extract useful features from the news audio. Get_f0 implements a fundamental frequency estimation algorithm using the normalized cross correlation function and dynamic programming. The algorithm is similar to the pitch tracking algorithm described by Secrest and Doddington [12]. Get_f0 determines the following values:

o F0 – fundamental frequency estimate
o PROB_VOICE- probability of voicing (binary value of 0 or 1)
o RMSrms energy value
o AC_PEAK – peak value of cross correlation