まず第一に、C++ は私の言語ではありません (私は Java プログラマーです)。
Microsoft SAPI 5.1 の例を見てきましたが、マシンで利用可能なすべての音声を出力する方法が必要です。SAPI のObject トークンを見たことがありますが、CComPtr を使用して反復する方法について少し混乱しています。誰でもこれで私を助けることができますか?さらに、デフォルトを使用する代わりに特定の音声を選択するにはどうすればよいですか?
例に基づいて、次のコードを呼び出してデフォルトの音声を取得できます。
ISpVoice * pVoice = NULL;
if (FAILED(::CoInitialize(NULL)))
return FALSE;
HRESULT hr = CoCreateInstance(CLSID_SpVoice, NULL, CLSCTX_ALL, IID_ISpVoice, (void **)&pVoice);
要するに:利用可能なすべてのボイスを一覧表示するにはどうすればよいですか? また、ボイスを選択するにはどうすればよいですか?
//PS: これをコンボ ボックスに入れる必要はありません(これまでに見たすべての例と同様)。JNI dll ライブラリ用にこれを実装しているので、反復の例を使用することをお勧めします。