STRAIGHT Libraryにの仕様に関するまとめと推定。
半分くらいは管理人のまとめ用。気がついたことがあれば更新されます。STRAIGHTはFrame単位で解析・合成する高機能VOCODERで、解析を行った際には音源情報とスペクトル情報を抽出する。また音声の合成には音源情報とスペクトル情報を使用します。スペクトル情報は基本周波数に対して平滑化が行われており、音程変化に比較的強いです。ただし数回の合成・解析で高音域に乱れが生じるのを確認済。
StraightSource型(音源情報)
基本周波数と非周期性尺度バッファの二つのデータを保持する。
基本周波数
いわゆる音程。
非周期性尺度バッファ
声に含まれる調音以外の要素の強さを格納する配列。
- BREを上げるにはバッファ内の数値を一律等倍している。
- 0〜numFrames-1までのバッファで、おそらくsamplingFrequency/2を等間隔に区切って周波数ごとの強度を記憶していると思われる。
straightSourceCompute( Straight, Source, double* inputWave, long length );
- あらかじめ用意されている読み込み関数は、DLLが必要なのでなんとなくいやならこちらを使用するべし。
StraightSpecgram型(スペクトル情報)
スペクトルの時間変化を保持する。
スペクトルバッファ
声に含まれる調音要素の強さを格納する配列。
- これも非周期性尺度バッファと同じく、周波数に対して等間隔な配列と思われる。
- フレーム単位でGendorFactorを操作したい場合、一次元のスペクトルバッファ配列を伸縮させる。
straightSpecgramCompute( Straight, StraightSpecgram, StraightSource, double*, long );
- straightSourceComputeに同じ。
StraightSynth型
音源情報とスペクグラムから音声を再合成する。
- STRAIGHT Libraryに用意されたファイル出力をするとメモリリークする。DLLを読み込む辺りでの開放忘れか。
straightSynthGetOutputWave
- こちらならDLL使わないので安心。ただし出力を自分で書く必要があります。
StraightConfig型
初期化用構造体。
frameShift
- ざっくり言って解析・合成時の単位時間。デフォルトは1ms。
frameLength
- 1Frameの解析・合成に必要な区間。デフォルトは40ms。frameLength - frameShift分はオーバラップするのだろう。
最終更新:2009年12月15日 16:00