TtsEventId Enum
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Opsomming van typen spraaksynthese-gebeurtenissen.
public enum class TtsEventId
public enum TtsEventId
type TtsEventId =
Public Enum TtsEventId
- Overname
Velden
| Name | Waarde | Description |
|---|---|---|
| StartInputStream | 1 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een stream begint te spreken. |
| EndInputStream | 2 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine het einde van de invoerstroom tegenkomt tijdens het spreken. |
| VoiceChange | 3 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine tijdens het spreken een wijziging van Voice tegenkomt. |
| Bookmark | 4 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een bladwijzer tegenkomt tijdens het spreken. |
| WordBoundary | 5 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een woord voltooit tijdens het spreken. |
| Phoneme | 6 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een telefoonme voltooit tijdens het spreken. |
| SentenceBoundary | 7 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een zin voltooit tijdens het spreken. |
| Viseme | 8 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een viseme voltooit tijdens het spreken. |
| AudioLevel | 9 | Identificeert gebeurtenissen die worden gegenereerd wanneer een spraaksynthese-engine een wijziging op audioniveau voltooit tijdens het spreken. |
Voorbeelden
Het volgende voorbeeld maakt deel uit van een aangepaste spraaksynthese-implementatie die wordt overgenomen van TtsEngineSsml, en het gebruik van de TextFragmentSpeechEventInfo, - FragmentStateen TtsEventId klassen.
De implementatie omvat TtsEngineSsml.Speak de volgende stappen:
Hiermee ontvangt u een matrix met TextFragment exemplaren en maakt u een nieuwe matrix met TextFragment exemplaren die moeten worden doorgegeven aan de
Speakmethode op een onderliggende synthese-engine.Als de Action eigenschap van elk TextFragment.State exemplaar gelijk is aan TtsEngineAction.Speak, doet de code het volgende:
Vertaalt Amerikaans Engels naar Brits Engels in de tekst die moet worden gesproken.
Als de ITtsEngineSite.EventInterest eigenschap die aan de implementatie wordt verstrekt, het
WordBoundarygebeurtenistype ondersteunt, wordt er een SpeechEventInfo exemplaar gebruikt om een gebeurtenis te maken om een synthesizervoortgangsmeter te besturen.
Vervolgens wordt een spraakrenderingsengine aangeroepen met de gewijzigde TextFragment matrix.
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);
}
Opmerkingen
Aangepaste spraaksynthese-engines definiëren de typen gebeurtenissen die met de TtsEventIdSpeech-platformsynthese-infrastructuur worden verzonden.
Specificatie wordt uitgevoerd door de EventId eigenschap van SpeechEventInfo exemplaren in te stellen die worden doorgegeven aan het AddEvents lid van de klasse die de ITtsEngineSite interface implementeert die is doorgegeven aan de methode op de Speak implementatie van TtsEngineSsmleen aangepaste spraakengine.
De Speech-platforminfrastructuur geeft aan welk type gebeurtenissen deze momenteel verwerkt via de EventInterest eigenschap die ITtsEngineSite wordt doorgegeven aan de spreek-implementatie.
De waarde van EventInterest is een bitmasker, waarbij de leden van TtsEventId het definiëren van de locatie van de bit die overeenkomt met het gebeurtenistype. WordBoundary heeft bijvoorbeeld een waarde van vijf (5), wat betekent dat de vijfde bit in de waarde die wordt geretourneerd, EventInterest aangeeft of de site het gebeurtenistype ondersteunt.