Méthode Speak
[Microsoft Agent est déconseillé à partir de Windows 7 et peut être indisponible dans les versions ultérieures de Windows.]
-
Description
-
Parle le texte ou le fichier audio spécifié pour le caractère spécifié.
-
Syntaxe
-
agent**. Caractères (« CharacterID »). Speak** [Texte], [Url]
Élément Description Text Optionnel. Chaîne qui spécifie ce que dit le caractère. Url Optionnel. Expression de chaîne spécifiant l’emplacement d’un fichier audio (. WAV ou . Format LWV). L’emplacement peut être spécifié sous forme de fichier (y compris une spécification de chemin UNC) ou d’URL (lorsque les données d’animation de caractères sont également récupérées via le protocole HTTP).
Bien que les paramètres Texte et Url soient facultatifs, l’un d’eux doit être fourni. Pour utiliser cette méthode avec un caractère configuré pour parler uniquement dans sa bulle de mots ou à l’aide d’un moteur de synthèse vocale (TTS), il vous suffit de fournir le paramètre Text . Incluez un espace entre les mots pour définir les sauts de mots appropriés dans le ballon de mot, même pour les langues qui n’incluent pas traditionnellement d’espaces.
Vous pouvez également inclure des caractères de barre verticale (|) dans le paramètre Text pour désigner d’autres chaînes, de sorte que le serveur choisit aléatoirement une chaîne différente chaque fois qu’il traite la méthode.
La prise en charge des caractères de la sortie TTS est définie lorsque le caractère est compilé à l’aide de l’éditeur de caractères Microsoft Agent. Pour générer une sortie TTS, un moteur TTS compatible doit déjà être installé avant d’appeler cette méthode. Pour plus d’informations, consultez Accès aux services Speech.
Si vous utilisez le fichier audio enregistré (. WAV ou . Format LWV uniquement) sortie pour le caractère, spécifiez l’emplacement du fichier dans le paramètre Url . Cette spécification de fichier peut inclure un chemin d’accès local (absolu ou relatif) ou un chemin d’accès UNC (Universal Naming Convention). Le nom de fichier ne peut pas inclure de caractères non inclus dans la page de code 1252 des États-Unis. Toutefois, si vous utilisez le protocole HTTP pour accéder aux données d’animation de caractères, utilisez la méthode Get pour charger l’animation avant d’appeler la méthode Speak . Pour plus d’informations sur la création, consultez Utilisation de l’outil d’édition sonore d’informations linguistiques Microsoft . Fichiers LWV.
Lorsque vous utilisez une sortie de fichier audio enregistré, vous pouvez toujours utiliser le paramètre Text pour spécifier les mots qui apparaissent dans la bulle de mots du caractère. Toutefois, si vous spécifiez un fichier audio linguistiquement amélioré (. LWV) pour le paramètre Url et ne spécifie pas de texte pour la bulle de mots, le paramètre Text utilise le texte stocké dans le fichier.
Vous pouvez également modifier les paramètres de la sortie vocale avec des balises spéciales que vous incluez dans le paramètre Text . Pour plus d’informations, consultez Balises de sortie vocale de l’agent Microsoft.
Si vous déclarez une référence d’objet et que vous la définissez sur cette méthode, elle retourne un objet Request . Vous pouvez l’utiliser pour synchroniser d’autres parties de votre code avec la sortie parlée du caractère, comme dans l’exemple suivant :
Dim SpeakRequest as Object
...
Set SpeakRequest = Genie.Speak ("And here it is.")
...
Sub Agent1_RequestComplete (ByVal Request as Object)
' Make certain the request exists
If SpeakRequest Not Nothing Then
' See if it was this request
If Request = SpeakRequest Then
' Display the message box
Msgbox "Ta da!"
End If
End If
End Sub
Vous pouvez également utiliser un objet Request pour case activée pour certaines conditions d’erreur. Par exemple, si vous utilisez la méthode Speak pour parler et que vous n’avez pas installé de moteur TTS compatible, le serveur définit la propriété Status de l’objet Request sur « failed » avec sa propriété Description sur « Class not registered » ou « Unknown or object returned error ». Pour déterminer si un moteur TTS est installé, utilisez la propriété TTSModeID .
De même, si vous avez la tentative de caractère pour parler un fichier audio, que le fichier n’a pas été chargé ou qu’il y a un problème avec le périphérique audio, le serveur définit également la propriété Status de l’objet Request sur « échec » avec un numéro de code d’erreur approprié.
Vous pouvez également inclure des balises vocales de signet dans votre texte Parler pour synchroniser votre code :
Dim SpeakRequest as Object
...
Set SpeakRequest = Genie.Speak ("And here \mrk=100\it is.")
...
Sub Agent1_Bookmark (ByVal BookmarkID As Long)
If BookmarkID = 100 Then
' Display the message box
Msgbox "Tada!"
End If
End Sub
Pour plus d’informations sur la balise vocale de signet, consultez Balises de sortie vocale.
La méthode Speak utilise la dernière action jouée pour déterminer l’animation orale à lire. Par exemple, si vous avez précédé la commande Speak d’une lecture « GestureRight », le serveur lira GestureRight , puis l’animation vocale GestureRight . Si la dernière animation lue n’a pas d’animation orale, l’Agent lit l’animation affectée à l’état De parole du personnage.
Si vous appelez Speak et que le canal audio est occupé, la sortie audio du caractère ne sera pas entendue, mais le texte s’affichera dans la bulle de mot.
La rupture automatique de mots de l’agent dans le mot bulle interrompt les mots à l’aide de caractères d’espace blanc (par exemple, Espace ou Tabulation). Toutefois, si elle ne peut pas, elle peut casser un mot pour s’adapter au ballon. Dans les langues telles que le japonais, le chinois et le thaï, où les espaces ne sont pas utilisés pour briser les mots, insérez un caractère d’espace unicode de largeur nulle (0x200B) entre les caractères pour définir des sauts logiques de mots.
Notes
La propriété Enabled du mot bulle doit également avoir la valeur True pour que le texte s’affiche.
Notes
Définissez l’ID de langue du caractère (en définissant l’ID de langue du caractère avant d’utiliser la méthode Speak pour garantir l’affichage du texte approprié dans la bulle de mots.
Événement Bookmark, Événement RequestStart, Événement RequestComplete