Freigeben über


Unterstützung für synthetisierte Sprache

[Der Microsoft-Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]

Wenn Sie synthetisierte Sprache verwenden, hat Ihr Charakter die Fähigkeit, fast alles zu sagen, was die größte Flexibilität bietet. Mit aufgezeichneten Audiodaten können Sie dem Charakter eine bestimmte oder eindeutige Stimme geben. Um die Ausgabe anzugeben, geben Sie den gesprochenen Text als Parameter der Speak-Methode an.

Da die Architektur des Microsoft-Agents Microsoft SAPI für die synthetisierte Sprachausgabe verwendet, können Sie jede Engine verwenden, die dieser Spezifikation entspricht und die Ausgabe von International Phonetic Alphabet (IPA) mithilfe der Visual-Methode der ITTSNotifySinkW-Schnittstelle unterstützt. Weitere Informationen zu den erforderlichen Engine-Anforderungen finden Sie unter Supportanforderungen für die Sprach-Engine.

Die Sprach-ID-Einstellung eines Zeichens bestimmt dessen TTS-Ausgabe. Wenn ein Client keine Sprach-ID für das Zeichen angibt, wird die Sprach-ID des Zeichens auf die Standardsprach-ID des Benutzers festgelegt. Wenn die Definition des Zeichens eine bestimmte Engine enthält und diese Engine geladen werden kann und mit der Spracheinstellung des Zeichens übereinstimmt, wird diese Engine verwendet. Andernfalls listet der Microsoft-Agent die anderen verfügbaren Engines auf und fordert eine SAPI-Übereinstimmung an, die anhand von Sprache, Geschlecht und Alter (in dieser Reihenfolge) am besten übereinstimmt. Wenn keine übereinstimmende Engine verfügbar ist, gibt es keine TTS-Ausgabe für die Verwendung des Zeichens durch diesen Client. Der Agent versucht, die TTS-Engine beim ersten Speak-Aufruf oder beim Abfragen oder erfolgreichen Festlegen der Modus-ID zu laden.

Eine Clientanwendung kann auch eine TTS-Engine für ihr Zeichen angeben (mit der TTSModeID-Eigenschaft ). Dadurch wird der Versuch des Servers überschrieben, basierend auf der bevorzugten TTS-Modus-ID des Zeichens oder der aktuellen Sprach-ID des Zeichens automatisch eine übereinstimmende Engine zu finden. Wenn diese Engine jedoch nicht installiert ist (oder nicht anderweitig geladen werden kann), schlägt der Aufruf fehl (und löst einen Fehler im Steuerelement aus). Der Server versucht dann, basierend auf der Sprach-ID, der kompilierten Zeichen-TTS-Einstellung und verfügbaren TTS-Engines eine weitere Engine zu laden. Wenn immer noch keine Übereinstimmung vorhanden ist, ist TTS für diesen Client nicht verfügbar, aber das Zeichen kann weiterhin in seine Wortsprechblase sprechen.

Nur die TTS-Engines, die von einem Client verwendet werden, bleiben geladen. Wenn z. B. ein Zeichen über eine definierte Einstellung für eine bestimmte Engine verfügt und diese Engine verfügbar ist, Ihre Clientanwendung jedoch eine andere Engine angegeben hat (indem die Sprach-ID eines Zeichens anders als die Engine festgelegt oder eine andere Modus-ID angegeben wird), bleibt nur die von Der Anwendung angegebene Engine geladen. Die Engine, die der definierten Einstellung des Zeichens für eine TTS-Einstellung entspricht, wird entladen (es sei denn, ein anderer Client verwendet die Einstellung der kompilierten Engine des Zeichens).