はじめに
音声の周波数分析は、単に音声を解析するだけ でなく、音声の圧縮や、音声認識、音声合成など の基礎として非常に重要な技術として使用されて いる。周波数分析の手段としては,数10年まえか ら使用されているバンドパスフィルターや、最近 計 算 能 力 が 上 が っ た
CPU
を 用 い たFourier
変 換、最大エントロピー法がある。Fourier
変換は、計算量が多く実用化が遅れたが、高速
Fourier
変換(Fast Fourier Transfor-mation FFT
と略す)が考案され広く使われてきた1)。しかし、計算量の多さや、ハードウェアリ ソースを多く要求するために、データ個数を少量 に制限して使われてきた。音声の標本化周波数 は、44.1
kHz
または、48kHz
であるか ら、デ ー タ個数を256ないし1024に制限すると、求めよう とする、周波数の分解能は、100Hz
ないし20Hz
ということになり楽音を解析するには問題を生ず る。また波形の接続によるスプリアスの問題もあ る。この問題を避けるために、窓関数が考えられ た3)。窓関数とは、Fourier変換がもともと無限大までの周波数を仮定することと波形がスムース につながっていることを仮定していることを、擬 似的に窓関数で近似する事である。しかし近似に よって本来あるはずのない周波数が生じたり、周 波数分解能が変化したりする3)6)。
これを避けるためにデータ量を増やし周波数分 解能を高めることにより欠点を軽減できる。ま た、低域が可聴周波数以下になるようにすれば、
位相のミスマッチによる寄生周波数をフィルター できる。しかし、データを増やすことにより、必 然的に計算量が増加して計算時間がかかる。ま た、周期を長くとることによる時間分解能が悪く なる欠点がある。計算量の増加は、最近の
CPU
の進歩により計算時間は飛躍的に短縮された。そ のうえMIT
により開発されたFFT
ライブラリー によって、飛躍的に計算時間の短縮がおこなわれ るようになった2)。その結果、多量のデータの処 理も、数秒で処理できるようになった。音楽CD
は量子化数16bit
標本化周波数44.1KHz
で記録さ れており非圧縮の音源としては、簡単にファイル に読み込めるので、これを、例にとり音声周波数 の分析を再検討してみた。今回は、時間分解能高分解フーリエ変換による音声分析
白川 利昭*
要 約
音声分析にフーリエ変換を用いた。データ個数を256から1047586まで変化してフーリエ変 換を行い音声周波数スペクトルの変化を検討した。フーリエ変換のデータ個数が少ないと、
音声データの周波数分解能を十分取れなくて、256から1057486に増加すると音声に含まれる 微妙な変化が見つかった。
*大妻女子大学 社会情報学部
大妻女子大学紀要
―社会情報系― 社会情報学研究 172008 175
は、考えないこととした。
方法
使用した音声ファイルは、CDに録音されたも ので、これを
WAV
フォーマットにリッピングし た。WAV
フォーマットは、MicrosoftとIBM
が提 唱した音声ファイルの形式で、Chunkと呼ばれ るデータの識別のためのヘッダをもっている4)。 このフォーマットは、RIFF(ResourceInter- change File Format)の音声フォーマットの一つ
である。WAVフォーマットのファイルは、非圧 縮のバイナリーファイルなので、C言語で簡単に 読むことができる。そこで、ファイルを読むプロ グラムを作成した。また音声の分析のために、プログラムを数本作 成した。使用言語は、C言語である。
このプログラムで呼び出す
FFT
ライブラリー は、以下の2つを選んだ。これらは、すべてオー プンソースのライブラリーである5)6)。1)奥村
FFT
2)
Matteo Frigo and Steven G. Johnson FFTW3
FFT1)は、標準的な、C
言語でかかれたよくできた、ソースである。
FFT2)は、公表された FFT
ライブラリーで最速であるとドキュメントに書いてある。
これ等のライブラリーの使い方を以下に示す。
1)奥村
FFT
奥村
FFT
ライブラリーは、関数宣言と関数 呼び出しだけで使用できる。//宣言
extern int fft(int n,double[],double[]);
x,y
を複素数のデータとする。// FFT
関数呼び出しfft(n,x,y);
x,y
に、FFTされた実部と虚部が代入される。2)FFTW3
このライブラリーは、いくつかの段階が必要で ある。
まず入力、出力配列を確保するために以下の コードを書く。
//配列の確保 double *in1;
fftw_complex *out1 ; fftw_plan p ;
in1=(double*)fftw_malloc(sizeof(double)*N) ; out1=(fftw_complex*)fftw_malloc(sizeof(fftw_
complex)*N) ;
次に
plan
を作成し、実行させる。//データのコピーと実行 終了 for(k=0;k<N ; k++)
{
in1[k]=xL[k] ;
}
p = fftw _ plan _ dft _ r 2 c _ 1 d ( N , in 1, out 1, FFTW_FORWARD) ;
fftw_execute(p) ; fftw_destroy_plan(p) ;
最後に、planを廃棄する。配列
out1[0]に実部と out1[1]に虚部が代入 さ
れるコンパイラは、gcc4.2を使用した。
データの個数は、2の20乗(1048576)を選ん だ。周波数の分解能は、0.02
Hz
となった。時間 分解能は、25秒となった。グラフ描画ソフトは、100万個のデータ の プ ロットができる
gnuplot
を使用した。使 用 し た
PC
は、CPUがPhenom
9950、メ モ リーが8GB、OSは、Fedora9 64bit
バージョ ンである。メモリーが多量にあるため、すべてオ ンメモリーでプログラムを動かす事ができた。2 分23秒の音声ファイルをすべて変換するに費やし た時間は、6.2秒であった。使用した音楽データは、以下の2枚の
CD
であ る。大妻女子大学紀要
―社会情報系― 社会情報学研究 172008 176
1)
Kenichiro Tokunaga AND GREAT MAKERS C346−2
2)
YO−YO−MA inspired by Bach SRCR 1955−6
結果と考察
図1、2にドミソの和音(293.664
Hz、329.
632Hz、370.
000Hz)を人工的にサイン波から作り
データ個数を変化させてフーリエ変換したスペク トルをしめした。3個のスペクトルが所定の周波 数に現れるはずであるが、256個のデータによる 音声スペクトルには、ほとんどこの3個の周波数 が現れていない。データの個数を65536に変える と、スペクトルが明瞭にあらわれ3個の周波数が 分離することが分かる。256個のデータのフーリ エ変換では、音声の周波数分析が不可能であることが分かる。周波数分解能を求めるならば、ある 程度以上の個数のデータが必要であることがわ かった。そこで、個数を2の20乗にとって解析を 進めた。
図3に
Yo−yo−ma
の演 奏 し たBach
の 無 伴 奏 チェロソナタ3番(BWV1007)をフーリエ変換 して周波数スペクトルにした図を示した。図3か ら、音声周波数スペクトルが音律以外に多数ある ことが分かる。このスペクトルを拡大して詳細部 分 を 調 べ て み た。100〜500Hz
を 拡 大 し た も の を、図4に示した。表1には、音律から求めた、音階とピークの周波数が示してある。表1から
Yo−yo−ma
は、調 律 を、約4分 の1全 音 低 く し図1 ド、ミ、ソ和音の周波数スペクトル
データ個数256
図2 ド、ミ、ソ和音の周波数スペクトル
データ個数65536
図3 Bach BWV1007 No.3 Yo-yo-ma 演 奏 の 周 波 数スペクトル
表1 Yo-yo-ma の音階と周波数
音階 平均率
Hz Yo−yo−ma Hz
音声強度c
130.82 126.34 28.76d
138.60 143.81 85.23155.70 24.64
e
164.82 159.71 77.05163.14 29.40
f
174.62 169.43 50.14g
196.00 192.24 53.29c
1 261.60 253.67 32.09d
1 293.66 286.18 74.98f
1 249.23 336.94 42.06g
1 392.00 382.49 105.28a
1 440.00 430.69 31.02c
2 523.26 508.51 24.98白川:高分解フーリエ変換による音声分析 177
ていることがわかった(スコルダツーラと呼ばれ ている)。Bachの無伴奏チェロ曲では、低い音 を強調し、響きをよくするために、過去には普通 に行われていたことである。音律によるスペクト ルが、音階周波数のみに集中せず、広がりを持っ ていることが分かる。広がりは、±3%ほどある ことが分かる。12平均律の音階の差は、約5%で あるから、となりの音と重なっていることがわか る。この広がりを削った音を聴取してみると、音 が痩せたように感じる(別途発表予定)。このこ とからスペクトルの広がりが音楽として重要であ ることが分かる。このスペクトルを詳しく見ると 音階以外に近接したピークがある。たとえば、
159.7
Hz
と163.1Hz
に あ る。こ れ は、ビ ブ ラ ー トであろう。Yo−yo−ma
は、ビブラートを約3Hz(1秒に約3回)の頻度で周波数を変化させてい ると言うことが分かった。
図5、6に、同 じ 曲 を、Yo−yo−maと 徳 永 兼 一郎が演奏した周波数スペクトルを示した。この 図から分かることは、同じ曲であるが、スペクト ル的には、かなり相違があることである。その理 由は、まず楽器の違いであろう。徳永の使ってい る 楽 器 は、Stradivariusで あ る。で は、楽 器 を 揃えてみよう。徳永は、この
CD
において、作者 の違う4種類のチェロで同一曲を演奏している。図7にチェロを
Montagnana
にかえて徳永が演 奏した同じ曲を示した。Stradivariusの周波数 スペクトルは、非常に細かい倍音が含まれていることが分かる。それに比して、Montagnanaは、
割 合 単 純 で あ る。Yo−yo−maの 演 奏 し た
Bach
は、スペクトルが明らかにStradivarius
制作の チェロとことなっており、巷間に言われているよ 図4 Yo-yo-ma BWV1007 No. 3 音声スペクトル100〜500Hz
図5 Bach BWV1007 No. 3 演奏 徳永兼一郎 楽器 Stradivarius
図6 Bach BWV1007 No. 3 演奏 Yo-yo-ma
図7 Bach BWV1007 No. 3 演奏 徳永兼一郎 楽器 Montagnana
大妻女子大学紀要
―社会情報系― 社会情報学研究 172008 178
うに、Yo−yo−maは
Montagnana
制作のチェロ を使用していると推測された。結論
音声を
Fourier
変換する時に、使用するデータの個数が重要であることがわかった。音声の高分 解
FFT
は、非常に細かい楽音のニュアンスまで 分析することが出きることが分かった。音楽の3 要素(音階、強度、音色)以外に、音声の豊かさ が、基音のスペクトルの広がりに依存しているこ とが分かった。楽音の圧縮ソフトのおおくはデー タ個数が256ないし512でスペクトルを求めている が、音声の微妙な変化を反映させるためには、データ個数を変化させて圧縮を試みる必要性があ るものと思える。
references
1)Cooly, J. W and Tukey, J. W, 1965, “An al-
gorithm for the machine calculation of com- plex Fourier series, Mathematics of Com- putation, Vol. 19, No. 90, 297−301.
2)Matteo Frigo, Steven G. Johnson, “FFTW
Manual”, (c)2003 Massachusetts Institute of Technology. FFTW (version3.1, 16 Janu- ary2006).
3)河田 聡編,2002, 科学計測のためのデー タ処理入門 ,CQ出版社,P49。
4)The Programmer’s File and Data Resource,
http : //www.wotsit.org/
5)奥村 晴彦,1991,
C
言語によるアルゴリ ズム辞典 ,技術評論社,P346.6)日野 幹雄,1977, スペクトル解析 ,朝倉 書店,P193.
白川:高分解フーリエ変換による音声分析 179
High Resolution Fourier Transformation for Sound Analysis
T OSHIAKI S HIRAKAWA
Social Information processing, School of Social Information, Otsuma Women’s University.
Abstract
The Fourier transform was used for sound analysis. The sound data changed from256 to one million, with the Fourier transform, and it examined the sound frequency spectra.
If there was few data number of the Fourier transform, I cannot take the frequency re- solving power of sound data enough, and a delicate change in the sound was found when I increased from 256 to 1057486.
Key Words
(キーワード)Fourier Transformation(フーリエ変換),Sound(音声),High Resolution(高分解),
YO−YO−MA, Frequency Spectra
(周波数スペクトル),FFTW,Montagnana, Stradivar- ius.
大妻女子大学紀要
―社会情報系― 社会情報学研究 172008 180