TtsEventId Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Énumère les types d'événements de synthèse vocale.
public enum class TtsEventId
public enum TtsEventId
type TtsEventId =
Public Enum TtsEventId
- Héritage
Champs
AudioLevel | 9 | Identifie les événements générés lorsqu'un moteur de synthèse vocale termine une modification de niveau audio pendant l'énonciation. |
Bookmark | 4 | Identifie les événements générés lorsqu'un moteur de synthèse vocale rencontre un signet pendant l'énonciation. |
EndInputStream | 2 | Identifie les événements générés lorsqu'un moteur de synthèse vocale rencontre la fin de son flux d'entrée pendant l'énonciation. |
Phoneme | 6 | Identifie les événements générés lorsqu'un moteur de synthèse vocale termine un phonème pendant l'énonciation. |
SentenceBoundary | 7 | Identifie les événements générés lorsqu'un moteur de synthèse vocale termine une phrase pendant l'énonciation. |
StartInputStream | 1 | Identifie les événements générés lorsqu'un moteur de synthèse vocale commence à énoncer un flux. |
Viseme | 8 | Identifie les événements générés lorsqu'un moteur de synthèse vocale termine un visème pendant l'énonciation. |
VoiceChange | 3 | Identifie les événements générés lorsqu'un moteur de synthèse vocale rencontre un changement de voix pendant l'énonciation. |
WordBoundary | 5 | Identifie les événements générés lorsqu'un moteur de synthèse vocale termine un mot pendant l'énonciation. |
Exemples
L’exemple suivant fait partie d’une implémentation de synthèse vocale personnalisée qui hérite de TtsEngineSsml , et utilise les TextFragment classes,, SpeechEventInfo FragmentState et TtsEventId .
L’implémentation de TtsEngineSsml.Speak comprend les étapes suivantes :
Reçoit un tableau d' TextFragment instances et crée un nouveau tableau d' TextFragment instances à passer à la
Speak
méthode sur un moteur de synthèse sous-jacent.Si la Action propriété de chaque TextFragment.State instance est égale à TtsEngineAction.Speak , le code effectue les opérations suivantes :
Traduit l’anglais américain en anglais britannique dans le texte à prononcer.
Si la ITtsEngineSite.EventInterest propriété fournie à l’implémentation prend en charge le
WordBoundary
type d’événement, une SpeechEventInfo instance est utilisée pour créer un événement pour conduire un compteur de progression de synthétiseur est créé.
Un moteur de rendu vocal est ensuite appelé avec le TextFragment tableau modifié.
private const int WordBoundaryFlag = 1 << (int)TtsEventId.WordBoundary;
private readonly char[] spaces = new char[] { ' ', '\t', '\r', '\n' };
internal struct UsVsUk
{
internal string UK;
internal string US;
}
override public void Speak (TextFragment [] frags, IntPtr wfx, ITtsEngineSite site)
{
TextFragment [] newFrags=new TextFragment[frags.Length];
for (int i=0;i<frags.Length;i++)
{
newFrags[i].State=frags[i].State;
//truncate
newFrags[i].TextToSpeak = frags[i].TextToSpeak.Substring(frags[i].TextOffset,
frags[i].TextLength);
newFrags[i].TextLength = newFrags[i].TextToSpeak.Length;
newFrags[i].TextOffset = 0;
if (newFrags[i].State.Action == TtsEngineAction.Speak)
{
//US to UK conversion
foreach (UsVsUk term in TransList)
{
newFrags[i].TextToSpeak.Replace(term.US, term.UK);
}
//Generate progress meter events if supported
if ((site.EventInterest & WordBoundaryFlag) != 0)
{
string[] subs = newFrags[i].TextToSpeak.Split(spaces);
foreach (string s in subs)
{
int offset = newFrags[i].TextOffset;
SpeechEventInfo spEvent = new SpeechEventInfo((Int16)TtsEventId.WordBoundary,
(Int16)EventParameterType.Undefined,
s.Length, new IntPtr(offset));
offset += s.Length;
if (s.Trim().Length > 0)
{
SpeechEventInfo[] events = new SpeechEventInfo[1];
events[0] = spEvent;
site.AddEvents(events, 1);
}
}
}
}
}
_baseSynthesize.Speak(newFrags, wfx, site);
}
Remarques
Les moteurs de synthèse vocale personnalisés définissent les types d’événements soumis à l’infrastructure de synthétiseur de plateforme vocale avec TtsEventId .
La spécification est effectuée en définissant la EventId propriété des SpeechEventInfo instances passées au AddEvents membre de la classe qui implémente l' ITtsEngineSite interface passée à la Speak méthode sur l’implémentation d’un moteur de reconnaissance vocale personnalisé de TtsEngineSsml .
L’infrastructure de la plateforme de reconnaissance vocale indique le type d’événements qu’elle gère actuellement via la EventInterest propriété sur le ITtsEngineSite passé à l’implémentation Speak.
La valeur de EventInterest est un masque de bits, où les membres de TtsEventId définissent l’emplacement du bit correspondant au type d’événement. Par exemple, WordBoundary a une valeur de cinq (5), ce qui signifie que le cinquième bit de la valeur retournée par EventInterest indique si le site prend en charge le type d’événement.