Prise en charge de la synthèse vocale
[Microsoft Agent est déconseillé à partir de Windows 7 et peut être indisponible dans les versions ultérieures de Windows.]
Si vous utilisez la parole synthétisée, votre personnage a la capacité de dire presque n’importe quoi, ce qui offre la plus grande flexibilité. Avec l’audio enregistré, vous pouvez donner au personnage une voix spécifique ou unique. Pour spécifier la sortie, fournissez le texte parlé en tant que paramètre de la méthode Speak .
Étant donné que l’architecture de Microsoft Agent utilise Microsoft SAPI pour la sortie vocale synthétisée, vous pouvez utiliser n’importe quel moteur conforme à cette spécification et prendre en charge la sortie de l’alphabet phonétique international (IPA) à l’aide de la méthode Visual de l’interface ITTSNotifySinkW . Pour plus d’informations sur les besoins du moteur, consultez Exigences de prise en charge du moteur Speech.
Le paramètre d’ID de langue d’un caractère détermine sa sortie TTS. Si un client ne spécifie pas d’ID de langue pour le caractère, l’ID de langue du caractère est défini sur l’ID de langue par défaut de l’utilisateur. Si la définition du caractère inclut un moteur spécifique et que ce moteur peut être chargé et qu’il correspond au paramètre de langue du caractère, ce moteur sera utilisé. Sinon, Microsoft Agent énumère les autres moteurs disponibles et demande une correspondance SAPI optimale en fonction de la langue, du sexe et de l’âge (dans cet ordre). Si aucun moteur correspondant n’est disponible, il n’existe aucune sortie TTS pour l’utilisation du caractère par ce client. L’agent tente de charger le moteur TTS lors du premier appel Speak ou lorsque vous interrogez ou définissez correctement son ID de mode.
Une application cliente peut également spécifier un moteur TTS pour son caractère (à l’aide de la propriété TTSModeID ). Cela remplace la tentative du serveur de trouver automatiquement un moteur correspondant en fonction de l’ID de mode TTS préféré du caractère ou du paramètre d’ID de langue actuelle du caractère. Toutefois, si ce moteur n’est pas installé (ou ne peut pas être chargé), l’appel échoue (et génère une erreur dans le contrôle). Le serveur tente ensuite de charger un autre moteur en fonction de l’ID de langue, du paramètre TTS de caractère compilé et des moteurs TTS disponibles. S’il n’y a toujours aucune correspondance, TTS n’est pas disponible pour ce client, mais le caractère peut toujours parler dans sa bulle de mot.
Seuls les moteurs TTS utilisés par un client restent chargés. Par exemple, si un caractère a une préférence définie pour un moteur spécifique et que ce moteur est disponible, mais que votre application cliente a spécifié un moteur différent (en définissant l’ID de langue d’un caractère différemment du moteur ou en spécifiant un AUTRE ID de mode), seul le moteur spécifié par votre application reste chargé. Le moteur correspondant à la préférence définie par le caractère pour un paramètre TTS est déchargé (sauf si un autre client utilise le paramètre de moteur compilé du caractère).