コントロール パネルに移動せずに、音声プロファイルを選択する簡単な方法をユーザーに提供する必要があります。SAPI 5.3 Speech API を使用した音響トレーニングを見つけまし たが、例がなく、情報が不完全です。
誰かが持っているなら、私は本当に例を使うことができます:)
コントロール パネルに移動せずに、音声プロファイルを選択する簡単な方法をユーザーに提供する必要があります。SAPI 5.3 Speech API を使用した音響トレーニングを見つけまし たが、例がなく、情報が不完全です。
誰かが持っているなら、私は本当に例を使うことができます:)
音声コントロールパネルの横に「チェックボックス」がある「デフォルト」プロファイルは、レジストリエントリによって決定されます。
[HKEY_CURRENT_USER\Software\Microsoft\Speech\RecoProfiles]
"DefaultTokenId"="HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech\\RecoProfiles\\Tokens\\{A32BEAC3-4442-4E13-B485-8A2DD7178794}"
この構成設定は、Windows音声認識GUI/コントロールパネルの起動時にのみ読み取られると思います。したがって、このレジストリ値を直接変更するだけでは、「実行時に」プロファイルを変更するのに役立たない場合があります。
実行時にプロファイルを変更するには、SetRecoProfile
関数の使用を検討してください。ただし、その関数を呼び出すことができるようになることは、複雑なトピックです...
次のコード スニペットは、認識プロファイルの選択に役立つ場合があります。プログラムで新しいプロファイルを作成することはまだ試みていません。
IEnumSpObjectTokens *pProfileEnum;
SpEnumTokens(SPCAT_RECOPROFILES, NULL, NULL, &pProfileEnum);
unsigned long l;
pProfileEnum->GetCount(&l);
for (int i = 0; i < (int) l; i++)
{
CComPtr<ISpObjectToken> IT;
pProfileEnum->Item(i, &IT);
WCHAR *wptr;
IT->GetId(&wptr);
CSpDynamicString dstrDefaultName;
SpGetDescription(IT, &dstrDefaultName);
//Do something to select the profile withe the name you would like to use
}
//Assuming IT is the profile you want to use, activat it by calling:
cpRecognizer->SetRecoProfile(IT);