スペクトログラム分析

straightSpecgramInitConfig

目的
STRAIGHTスペクトログラム分析エンジンの設定を行う構造体を初期化します。
書式
#include <straight/straight.h>

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

straightSpecgramInitialize

目的
StraightSpecgram型のメモリを確保するとともに、STRAIGHTスペクトログラム分析エンジンを初期化します。
書式
#include <straight/straight.h>

StraightSpecgram straightSpecgramInitialize(StraightSpecgramConfig *config);
引数
config
straightSpecgramInitConfigを呼び出した後に 所望の設定を行ったStraightSpecgramConfig型変数のアドレスを指定します。
戻り値
初期化に成功するとメモリ確保されたStraightSpecgram型が返り、失敗するとNULLが返ります。 STRAIGHTスペクトログラム分析エンジンを解放する際には、straightSpecgramDestroyを呼び、StraightSpecgram型のメモリを解放して下さい。
関連項目
straightSpecgramInitConfig

straightSpecgramDestroy

目的
StraightSpecgram型のメモリを解放するとともに、STRAIGHTスペクトログラム分析エンジンを解放します。
書式
#include <straight/straight.h>

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

straightSpecgramCompute

目的
スペクトログラム分析を実行します。
書式
#include <straight/straight.h>

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

スペクトログラム情報の取得・設定

目的
スペクトログラム情報の取得・設定を行います。
書式
#include <straight/straight.h>

long straightSpecgramGetNumFrames(StraightSpecgram specgram);
long straightSpecgramGetFrequencyLength(StraightSpecgram specgram);

double straightSpecgramQuantizePosition(Straight straight, StraightSpecgram specgram, double positionSec, long *framePtr);
double straightSpecgramGetFramePosition(Straight straight, StraightSpecgram specgram, long frame);
    
stBool straightSpecgramGetSpectrum(Straight straight, StraightSpecgram specgram, long frame, double *specBuffer, long specBufferLength);
stBool straightSpecgramSetSpectrum(Straight straight, StraightSpecgram specgram, long frame, double *specBuffer, long specBufferLength);
double *straightSpecgramGetSpectrumPointer(Straight straight, StraightSpecgram specgram, long frame);

stBool straightSpecgramCreate(Straight straight, StraightSpecgram specgram, long nframes);

stBool straightSpecgramIsFixedFrameShift(StraightSpecgram specgram);
引数
straight
straightInitialize で得られたStraight型を指定します。
specgram
straightSpecgramInitialize で得られたStraightSpecgram型を指定します。
positionSec
時刻を秒単位で指定します。
framePtr
フレーム番号を取得するためのlong型変数のアドレスを指定します。 この値が不要の場合は、NULLを指定することができます。
frame
フレーム番号(0始まり)を指定します。
specBuffer
スペクトル情報を取得・設定するためのバッファ(配列もしくはメモリ確保されたポインタ)を指定します。
specBufferLength
specBuffer(スペクトル情報を取得・設定するためのバッファ)の長さを指定します。 straightSpecgramGetFrequencyLengthで得られる長さを超える場合、 超えた部分に対する処理は行われません。
nframes
何フレーム分の内部バッファを作成するかを指定します。
戻り値
戻り値の型がstBool型の場合は、実行に成功するとST_TRUEが返り、失敗するとST_FALSEが返ります。 それ以外の場合の戻り値については、説明の項を参照して下さい。
説明
straightSpecgramGetNumFramesstraightSpecgramGetFrequencyLengthは、 それぞれ、内部に持つスペクトログラムのバッファのフレーム数と 周波数軸のポイント数を取得します。

straightSpecgramQuantizePositionは、秒単位の時刻を、 その時刻に最も近いスペクトログラムのフレームの時刻に変換します。 straightSpecgramGetFramePositionは、該当のフレーム番号の時刻(秒単位)を取得します。

straightSpecgramGetSpectrumは、特定のフレームのスペクトルの内容を指定されたバッファに取得します。 straightSpecgramSetSpectrumは、特定のフレームのスペクトルの内容を指定されたバッファの内容で置き換えます。 straightSpecgramGetSpectrumPointerは、特定のフレームのスペクトルの内容を 保持する内部バッファへのポインタを取得します。 このポインタを用いて内容を書き換えれば内部バッファの内容を書き換えることができます。 これらの関数は、内部バッファが作られていない状態の場合にはエラーになります。

straightSpecgramCreateは、スペクトログラムの内容を保持する内部バッファを新たに作成します。

straightSpecgramIsFixedFrameShiftは、スペクトログラムの分析において、 フレームシフトが固定長であるかどうかを調べます。 現在の実装では、固定長のフレームシフトのみをサポートしてます。

関連項目
straightSpecgramCompute

Last modified: "2013-04-08 17:10:20 hideki"