Win32 API 日本語リファレンス
ホームMedia.Speech › ISpRecognizer

ISpRecognizer

COM
IIDc2b5f241-daa0-4507-9e16-5a1eaa2b7a5c継承元ISpProperties自前メソッド開始 vtbl7

メソッド 16

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 7 HRESULT SetRecognizer(ISpObjectToken* pRecognizer)
pRecognizerISpObjectToken*in使用するSR(音声認識)エンジンを表すオブジェクトトークン。NULL指定で既定エンジンを選択する。
vtbl 8 HRESULT GetRecognizer(ISpObjectToken** ppRecognizer)
ppRecognizerISpObjectToken**out現在設定されている認識エンジンのオブジェクトトークンを受け取るポインタ。
vtbl 9 HRESULT SetInput(IUnknown* pUnkInput, BOOL fAllowFormatChanges)
pUnkInputIUnknown*inoptional入力オーディオオブジェクト(ISpStreamFormatやオーディオトークン等)へのIUnknown。NULLで既定入力。
fAllowFormatChangesBOOLinエンジンに合わせ入力フォーマットの変更を許可するか。TRUEで自動変換を許す。
vtbl 10 HRESULT GetInputObjectToken(ISpObjectToken** ppToken)
ppTokenISpObjectToken**out現在の入力オーディオデバイスを表すオブジェクトトークンを受け取るポインタ。
vtbl 11 HRESULT GetInputStream(ISpStreamFormat** ppStream)
ppStreamISpStreamFormat**out現在の入力オーディオストリーム(ISpStreamFormat)を受け取るポインタ。
vtbl 12 HRESULT CreateRecoContext(ISpRecoContext** ppNewCtxt)
ppNewCtxtISpRecoContext**out新規作成した認識コンテキスト(ISpRecoContext)を受け取るポインタ。
vtbl 13 HRESULT GetRecoProfile(ISpObjectToken** ppToken)
ppTokenISpObjectToken**out現在の認識プロファイルを表すオブジェクトトークンを受け取るポインタ。
vtbl 14 HRESULT SetRecoProfile(ISpObjectToken* pToken)
pTokenISpObjectToken*in適用する認識プロファイル(話者プロファイル)を表すオブジェクトトークン。
vtbl 15 HRESULT IsSharedInstance()
vtbl 16 HRESULT GetRecoState(SPRECOSTATE* pState)
pStateSPRECOSTATE*inout現在のエンジン状態(SPRECOSTATE列挙)を受け取るポインタ。アクティブ/非アクティブ等を示す。
vtbl 17 HRESULT SetRecoState(SPRECOSTATE NewState)
NewStateSPRECOSTATEin設定する新しいエンジン状態(SPRECOSTATE列挙)。アクティブ化や停止を指定する。
vtbl 18 HRESULT GetStatus(SPRECOGNIZERSTATUS* pStatus)
pStatusSPRECOGNIZERSTATUS*inout認識エンジンの稼働状況(SPRECOGNIZERSTATUS構造体)を受け取るポインタ。
vtbl 19 HRESULT GetFormat(SPSTREAMFORMATTYPE WaveFormatType, GUID* pFormatId, WAVEFORMATEX** ppCoMemWFEX)
WaveFormatTypeSPSTREAMFORMATTYPEin取得対象のフォーマット種別(SPSTREAMFORMATTYPE)。入力/SREngine等を指定する。
pFormatIdGUID*inout受け取るフォーマットを識別するGUIDのポインタ。
ppCoMemWFEXWAVEFORMATEX**out受け取るWAVEFORMATEX構造体のポインタ。CoTaskMemFreeで解放が必要。
vtbl 20 HRESULT IsUISupported(LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData, BOOL* pfSupported)
pszTypeOfUILPWSTRin問い合わせるUI種別を示す文字列(例: SPDUI_EngineProperties)。
pvExtraDatavoid*inoutUIへ渡す追加データへのポインタ。不要ならNULL可。
cbExtraDataDWORDinpvExtraDataが指すデータのバイト数。
pfSupportedBOOL*inout指定UIがサポートされるかを受け取るBOOLポインタ。
vtbl 21 HRESULT DisplayUI(HWND hwndParent, LPWSTR pszTitle, LPWSTR pszTypeOfUI, void* pvExtraData, DWORD cbExtraData)
hwndParentHWNDin表示するUIダイアログの親ウィンドウハンドル。
pszTitleLPWSTRinoptionalUIダイアログのタイトル文字列。NULL可。
pszTypeOfUILPWSTRin表示するUI種別を示す文字列。
pvExtraDatavoid*inoutUIへ渡す追加データへのポインタ。不要ならNULL可。
cbExtraDataDWORDinpvExtraDataが指すデータのバイト数。
vtbl 22 HRESULT EmulateRecognition(ISpPhrase* pPhrase)
pPhraseISpPhrase*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 指定が可能。