ホーム › Media.Speech › ISpRecognizer
ISpRecognizer
COMメソッド 16
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 7 HRESULT SetRecognizer(ISpObjectToken* pRecognizer)
| pRecognizer | ISpObjectToken* | in | 使用するSR(音声認識)エンジンを表すオブジェクトトークン。NULL指定で既定エンジンを選択する。 |
vtbl 8 HRESULT GetRecognizer(ISpObjectToken** ppRecognizer)
| ppRecognizer | ISpObjectToken** | out | 現在設定されている認識エンジンのオブジェクトトークンを受け取るポインタ。 |
| pUnkInput | IUnknown* | inoptional | 入力オーディオオブジェクト(ISpStreamFormatやオーディオトークン等)へのIUnknown。NULLで既定入力。 |
| fAllowFormatChanges | BOOL | in | エンジンに合わせ入力フォーマットの変更を許可するか。TRUEで自動変換を許す。 |
vtbl 10 HRESULT GetInputObjectToken(ISpObjectToken** ppToken)
| ppToken | ISpObjectToken** | out | 現在の入力オーディオデバイスを表すオブジェクトトークンを受け取るポインタ。 |
vtbl 11 HRESULT GetInputStream(ISpStreamFormat** ppStream)
| ppStream | ISpStreamFormat** | out | 現在の入力オーディオストリーム(ISpStreamFormat)を受け取るポインタ。 |
vtbl 12 HRESULT CreateRecoContext(ISpRecoContext** ppNewCtxt)
| ppNewCtxt | ISpRecoContext** | out | 新規作成した認識コンテキスト(ISpRecoContext)を受け取るポインタ。 |
vtbl 13 HRESULT GetRecoProfile(ISpObjectToken** ppToken)
| ppToken | ISpObjectToken** | out | 現在の認識プロファイルを表すオブジェクトトークンを受け取るポインタ。 |
vtbl 14 HRESULT SetRecoProfile(ISpObjectToken* pToken)
| pToken | ISpObjectToken* | in | 適用する認識プロファイル(話者プロファイル)を表すオブジェクトトークン。 |
vtbl 15 HRESULT IsSharedInstance()
vtbl 16 HRESULT GetRecoState(SPRECOSTATE* pState)
| pState | SPRECOSTATE* | inout | 現在のエンジン状態(SPRECOSTATE列挙)を受け取るポインタ。アクティブ/非アクティブ等を示す。 |
vtbl 17 HRESULT SetRecoState(SPRECOSTATE NewState)
| NewState | SPRECOSTATE | in | 設定する新しいエンジン状態(SPRECOSTATE列挙)。アクティブ化や停止を指定する。 |
vtbl 18 HRESULT GetStatus(SPRECOGNIZERSTATUS* pStatus)
| pStatus | SPRECOGNIZERSTATUS* | inout | 認識エンジンの稼働状況(SPRECOGNIZERSTATUS構造体)を受け取るポインタ。 |
vtbl 19 HRESULT GetFormat(SPSTREAMFORMATTYPE WaveFormatType, GUID* pFormatId, WAVEFORMATEX** ppCoMemWFEX)
| WaveFormatType | SPSTREAMFORMATTYPE | in | 取得対象のフォーマット種別(SPSTREAMFORMATTYPE)。入力/SREngine等を指定する。 |
| pFormatId | GUID* | inout | 受け取るフォーマットを識別するGUIDのポインタ。 |
| ppCoMemWFEX | WAVEFORMATEX** | out | 受け取るWAVEFORMATEX構造体のポインタ。CoTaskMemFreeで解放が必要。 |
vtbl 20 HRESULT IsUISupported(LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData, BOOL* pfSupported)
| pszTypeOfUI | LPWSTR | in | 問い合わせるUI種別を示す文字列(例: SPDUI_EngineProperties)。 |
| pvExtraData | void* | inout | UIへ渡す追加データへのポインタ。不要ならNULL可。 |
| cbExtraData | DWORD | in | pvExtraDataが指すデータのバイト数。 |
| pfSupported | BOOL* | inout | 指定UIがサポートされるかを受け取るBOOLポインタ。 |
vtbl 21 HRESULT DisplayUI(HWND hwndParent, LPWSTR pszTitle, LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData)
| hwndParent | HWND | in | 表示するUIダイアログの親ウィンドウハンドル。 |
| pszTitle | LPWSTR | inoptional | UIダイアログのタイトル文字列。NULL可。 |
| pszTypeOfUI | LPWSTR | in | 表示するUI種別を示す文字列。 |
| pvExtraData | void* | inout | UIへ渡す追加データへのポインタ。不要ならNULL可。 |
| cbExtraData | DWORD | in | pvExtraDataが指すデータのバイト数。 |
| pPhrase | ISpPhrase* | in | 認識結果をエミュレートするための入力フレーズ(ISpPhrase)。音声入力なしでテスト発火に使う。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISpRecognizer "{C2B5F241-DAA0-4507-9E16-5A1EAA2B7A5C}" #usecom global ISpRecognizer IID_ISpRecognizer "{}" #comfunc global ISpRecognizer_SetRecognizer 7 sptr #comfunc global ISpRecognizer_GetRecognizer 8 sptr #comfunc global ISpRecognizer_SetInput 9 sptr,int #comfunc global ISpRecognizer_GetInputObjectToken 10 sptr #comfunc global ISpRecognizer_GetInputStream 11 sptr #comfunc global ISpRecognizer_CreateRecoContext 12 sptr #comfunc global ISpRecognizer_GetRecoProfile 13 sptr #comfunc global ISpRecognizer_SetRecoProfile 14 sptr #comfunc global ISpRecognizer_IsSharedInstance 15 #comfunc global ISpRecognizer_GetRecoState 16 var #comfunc global ISpRecognizer_SetRecoState 17 int #comfunc global ISpRecognizer_GetStatus 18 var #comfunc global ISpRecognizer_GetFormat 19 int,var,var #comfunc global ISpRecognizer_IsUISupported 20 wstr,sptr,int,var #comfunc global ISpRecognizer_DisplayUI 21 sptr,wstr,wstr,sptr,int #comfunc global ISpRecognizer_EmulateRecognition 22 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpRecognizer "{C2B5F241-DAA0-4507-9E16-5A1EAA2B7A5C}" #usecom global ISpRecognizer IID_ISpRecognizer "{}" #comfunc global ISpRecognizer_SetRecognizer 7 sptr #comfunc global ISpRecognizer_GetRecognizer 8 sptr #comfunc global ISpRecognizer_SetInput 9 sptr,int #comfunc global ISpRecognizer_GetInputObjectToken 10 sptr #comfunc global ISpRecognizer_GetInputStream 11 sptr #comfunc global ISpRecognizer_CreateRecoContext 12 sptr #comfunc global ISpRecognizer_GetRecoProfile 13 sptr #comfunc global ISpRecognizer_SetRecoProfile 14 sptr #comfunc global ISpRecognizer_IsSharedInstance 15 #comfunc global ISpRecognizer_GetRecoState 16 sptr #comfunc global ISpRecognizer_SetRecoState 17 int #comfunc global ISpRecognizer_GetStatus 18 sptr #comfunc global ISpRecognizer_GetFormat 19 int,sptr,sptr #comfunc global ISpRecognizer_IsUISupported 20 wstr,sptr,int,sptr #comfunc global ISpRecognizer_DisplayUI 21 sptr,wstr,wstr,sptr,int #comfunc global ISpRecognizer_EmulateRecognition 22 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。