音源分析

straightSourceInitConfig

目的
STRAIGHT音源分析エンジンの設定を行う構造体を初期化します。
書式
#include <straight/straight.h>

stBool straightSourceInitConfig(StraightSourceConfig *config);
引数
config
StraightSourceConfig型変数のアドレスを指定します。
戻り値
初期化に成功するとST_TRUEが返り、失敗するとST_FALSEが返ります。
説明
実体はマクロとなっており、構造体のメンバにバージョンIDなどを設定します。 これにより、ライブラリのバイナリレベルでの互換性が保たれています。
関連項目
初期化関数用構造体

straightSourceInitialize

目的
StraightSource型のメモリを確保するとともに、STRAIGHT音源分析エンジンを初期化します。
書式
#include <straight/straight.h>

StraightSource straightSourceInitialize(StraightSourceConfig *config);
引数
config
straightSourceInitConfigを呼び出した後に 所望の設定を行ったStraightSourceConfig型変数のアドレスを指定します。
戻り値
初期化に成功するとメモリ確保されたStraightSource型が返り、失敗するとNULLが返ります。 STRAIGHT音源分析エンジンを解放する際には、straightSourceDestroyを呼び、StraightSource型のメモリを解放して下さい。
関連項目
straightSourceInitConfig

straightSourceDestroy

目的
StraightSource型のメモリを解放するとともに、STRAIGHT音源分析エンジンを解放します。
書式
#include <straight/straight.h>

stBool straightSourceDestroy(StraightSource source);
引数
source
straightSourceInitialize で得られたStraightSource型を指定します。
戻り値
解放に成功するとST_TRUEが返り、失敗するとST_FALSEが返ります。
関連項目
straightSourceInitialize

straightSourceCompute

目的
音源分析を実行します。
書式
#include <straight/straight.h>

stBool straightSourceCompute(Straight straight, StraightSource source, double *inputWave, long inputWaveLength);
引数
straight
straightInitialize で得られたStraight型を指定します。
source
straightSourceInitialize で得られたStraightSource型を指定します。
inputWave
入力音声のバッファを指定します。 サンプリング周波数はstraightInitializeで指定したものである必要があります。 振幅値は、-1から1までの範囲に収まる必要があります。 なお、straightReadAudioFileでファイルを読み込んだ場合は、この引数をNULLとすることができ、 この場合には読み込んだファイルが分析されます。
inputWaveLength
inputWaveで指定したバッファの長さを指定します。
戻り値
実行に成功するとST_TRUEが返り、失敗するとST_FALSEが返ります。
説明
分析結果は、第2引数のsourceの内部に保持されます。
関連項目
straightSourceInitialize

音源情報の取得・設定

目的
音源情報の取得・設定を行います。
書式
#include <straight/straight.h>

double straightSourceQuantizePosition(Straight straight, StraightSource source, double positionSec, long *framePtr);
double straightSourceGetFramePosition(Straight straight, StraightSource source, long frame);

long straightSourceGetF0NumFrames(StraightSource source);
stBool straightSourceGetF0(Straight straight, StraightSource source, long frame, double *f0Ptr);
stBool straightSourceSetF0(Straight straight, StraightSource source, long frame, double f0);
    
long straightSourceGetAperiodicityNumFrames(StraightSource source);
long straightSourceGetAperiodicityFrequencyLength(StraightSource source);
stBool straightSourceGetAperiodicity(Straight straight, StraightSource source, long frame, double *aperiodicityBuffer, long aperiodicityBufferLength);
stBool straightSourceSetAperiodicity(Straight straight, StraightSource source, long frame, double *aperiodicityBuffer, long aperiodicityBufferLength);
double *straightSourceGetAperiodicityPointer(Straight straight, StraightSource source, long frame);
    
stBool straightSourceCreateF0(Straight straight, StraightSource source, long nframes);
stBool straightSourceCreateAperiodicity(Straight straight, StraightSource source, long nframes);

stBool straightSourceIsFixedFrameShift(StraightSource source);

/*---- version 1.1.0 ----*/
stBool straightSourceIsF0CandidatesSupported(StraightSource source);
stBool straightSourceCreateF0Candidates(Straight straight, StraightSource source, long ncandidates);
stBool straightSourceGetF0Candidate(Straight straight, StraightSource source, long frame, long candidate, double *value);
stBool straightSourceSetF0Candidate(Straight straight, StraightSource source, long frame, long candidate, double value);

stBool straightSourceIsUnvoicedF0Supported(StraightSource source);
stBool straightSourceSetUnvoiced(Straight straight, StraightSource source, long frame);
stBool straightSourceGetUnvoicedF0(Straight straight, StraightSource source, long frame, double *f0Ptr);
stBool straightSourceSetUnvoicedF0(Straight straight, StraightSource source, long frame, double f0);
引数
straight
straightInitialize で得られたStraight型を指定します。
positionSec
時刻を秒単位で指定します。
framePtr
フレーム番号を取得するためのlong型変数のアドレスを指定します。 この値が不要の場合は、NULLを指定することができます。
source
straightSourceInitialize で得られたStraightSource型を指定します。
frame
フレーム番号(0始まり)を指定します。
f0Ptr
F0の値を取得するためのdouble型変数のアドレスを指定します。
f0
F0の値を指定します。
aperiodicityBuffer
非周期性指標を取得・設定するためのバッファ(配列もしくはメモリ確保されたポインタ)を指定します。
aperiodicityBufferLength
aperiodicityBuffer(非周期性指標を取得・設定するためのバッファ)の長さを指定します。 straightSourceGetAperiodicityFrequencyLengthで得られる長さを超える場合、 超えた部分に対する処理は行われません。
nframes
何フレーム分の内部バッファを作成するかを指定します。
ncandidates
F0の候補数を指定します。
candidate
F0の候補のインデックス(0始まり)を指定します。
戻り値
戻り値の型がstBool型の場合は、実行に成功するとST_TRUEが返り、失敗するとST_FALSEが返ります。 それ以外の場合の戻り値については、説明の項を参照して下さい。
説明
straightSourceQuantizePositionは、秒単位の時刻を、 その時刻に最も近い内部バッファのフレームの時刻に変換します。 straightSourceGetFramePositionは、該当のフレーム番号の時刻(秒単位)を取得します。

straightSourceGetF0NumFramesstraightSourceGetAperiodicityNumFramesは、 それぞれF0と非周期性指標の内部バッファのフレーム数を取得します。 straightSourceGetAperiodicityFrequencyLengthは、 非周期性指標における内部バッファの周波数軸のポイント数を取得します。

straightSourceGetF0は、特定のフレームのF0の値を取得します。 straightSourceSetF0は、特定のフレームのF0の値を指定された値に置き換えます。 これらの関数は、内部バッファが作られていない状態の場合にはエラーになります。

straightSourceGetAperiodicityは、特定のフレームの非周期性指標の内容を指定されたバッファに取得します。 straightSourceSetAperiodicityは、特定のフレームの非周期性指標の内容を指定されたバッファの内容で置き換えます。 straightSourceGetAperiodicityPointerは、特定のフレームの非周期性指標の内容を 保持する内部バッファへのポインタを取得します。 このポインタを用いて内容を書き換えれば内部バッファの内容を書き換えることができます。 これらの関数は、内部バッファが作られていない状態の場合にはエラーになります。

straightSourceCreateF0straightSourceCreateAperiodicityは、 それぞれF0と非周期性指標の内容を保持する内部バッファを新たに作成します。

straightSourceIsFixedFrameShiftは、 音源の分析において、フレームシフトが固定長であるかどうかを調べます。 現在の実装では、固定長のフレームシフトのみをサポートしてます。

次の4つの関数は、F0の抽出において、複数候補を抽出する場合に用いるものです。 音源分析エンジンがTandem-STRAIGHT V009ad(Version ID=3001)以上のときに機能します。 ライブラリバージョン1.1.0で導入されました。
straightSourceIsF0CandidatesSupportedは、F0の複数候補を用いる設定になっているかどうかを取得します。 straightSourceCreateF0Candidatesは、F0の複数候補を保持する内部バッファを新たに作成します。 straightSourceGetF0Candidateは、特定のフレームにおけるF0の候補を取得します。 straightSourceSetF0Candidateは、特定のフレームにおけるF0の候補を指定された値に置き換えます。 straightSourceGetF0CandidatestraightSourceSetF0Candidateは、内部バッファが作られていない状態の場合にはエラーになります。

次の4つの関数は、無声音及び無音(以下、非有声音)のF0の値を設定・取得する場合に用いるものです。 音源分析エンジンがTandem-STRAIGHT V009ad(Version ID=3001)以上で関係します。 ライブラリバージョン1.1.0で導入されました。 なお、内部的には、非有声音用のF0のバッファには、有声音のF0の値も含まれています。
straightSourceIsUnvoicedF0Supported非有声音のF0の設定・取得が機能する状態になっているかどうかを取得します。 straightSourceSetUnvoicedは、特定のフレームを無声音にします。 この関数は音源分析エンジンがTandem-STRAIGHT V009ad以下でも機能します。 straightSourceGetUnvoicedF0は、非有声音用F0バッファの特定のフレームにおけるF0値を取得します。 そのフレームが有声音であっても内部的に値が存在していれば、その値が得られます。 straightSourceSetUnvoicedF0は、非有声音用F0バッファの特定のフレームにおけるF0値を指定された値に置き換えます。

関連項目
straightSourceCompute

Last modified: "2013-04-20 23:08:29 hideki"