XSpeechSynthesizerEnumerateInstalledVoices
インストールされている音声を列挙し、各音声に対して callback でポイントされているメソッドを呼び出します。
構文
HRESULT XSpeechSynthesizerEnumerateInstalledVoices(
void* context,
XSpeechSynthesizerInstalledVoicesCallback* callback
)
パラメーター
context _In_opt_
型: void*
呼び出し元が呼び出し元固有のデータを回復できるようにコールバック関数に渡されるユーザー指定の変数。
callback _In_
型: XSpeechSynthesizerInstalledVoicesCallback*
インストールされている音声ごとに 1 回呼び出されるメソッドへのポインター。
戻り値
型: HRESULT
正常に実行された場合は S_OK が返され、それ以外の場合はエラー コードが返されます。 エラー コードの一覧については、「エラー コード」を参照してください。
解説
注意
この関数は、時間依存のスレッドで呼び出すのに安全ではありません。 詳細については、「時間依存のスレッド」を参照してください。
この関数は、デバイスにインストールされたスピーチ合成エンジン (音声) を列挙します。 この関数は、インストールされた音声ごとに callback で指定された XSpeechSynthesizerInstalledVoicesCallback コールバック関数を 1 回呼び出し、その音声に関する情報を含む XSpeechSynthesizerVoiceInformation 構造体を渡します。
次の例は、XSpeechSynthesizerEnumerateInstalledVoices 関数を呼び出して、デバイスにインストールされている音声を列挙する方法を示しています。 この例は、XSpeechSynthesizerInstalledVoicesCallback コールバック関数を呼び出して、(1) デバイスにインストールされた音声の数をカウントし、(2) インストールされた各音声に関する情報を XSpeechSynthesizerVoiceInformation 構造体からデバッガーに出力します。
int Game::CountInstalledVoices()
{
HRESULT hr = S_OK;
int* voiceCount = new int();
// Call XSpeechSynthesizerEnumerateInstalledVoices with a callback function
// defined as a lambda expression that increments the count of installed voices
// each time it's invoked, and outputs information about each voice to the
// debugger for display.
hr = XSpeechSynthesizerEnumerateInstalledVoices(voiceCount,
[](
_In_ const XSpeechSynthesizerVoiceInformation* information,
_In_ void* context
) -> bool
{
// Increment and update the count of installed voices.
int* voiceCount = (int*)context;
*voiceCount = *voiceCount + 1;
CopyMemory(context, voiceCount, sizeof(int));
// Output information about the current installed voice
// to the debugger for display.
char buffer[1000];
int bufferLen;
bufferLen = sprintf(buffer, "(%s) %s - %s, %s\n",
information->VoiceId,
information->Description,
information->Gender == XSpeechSynthesizerVoiceGender::Male ? "Male" : "Female",
information->Language);
OutputDebugStringA(buffer);
// Continue iterating through installed voices.
// If this was set to false, the calling function would stop
// enumerating installed voices.
return true;
}
);
// Return the count of installed voices.
return *voiceCount;
}
要件
ヘッダー: XSpeechSynthesizer.h
ライブラリ: xgameruntime.lib
サポートされているプラットフォーム: Windows、Xbox One ファミリー本体、Xbox Series 本体
関連項目
XAccessibility
XSpeechSynthesizerSetCustomVoice
XSpeechSynthesizer