EventParameterType Enumeration
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Listet die Typen von Datenzeigern auf, die an Sprachesyntheseereignisse übergeben werden.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- Vererbung
Felder
Object | 2 | Wird derzeit nicht unterstützt. |
Pointer | 3 | Wird derzeit nicht unterstützt. |
String | 4 | Gibt an, dass das |
Token | 1 | Zeigt an, dass das |
Undefined | 0 | Gibt an, dass das |
Beispiele
Das folgende Beispiel ist Teil einer benutzerdefinierten Implementierung der Sprachsynthese, die von erbt TtsEngineSsml und die Verwendung von , , und TextFragment SpeechEventInfo FragmentState TtsEventId verwendet.
Die Implementierung von Speak
Empfängt ein Array von TextFragment -Instanzen und erstellt ein neues Array von TextFragment -Instanzen, das an die
Speak
-Methode einer zugrunde liegenden Synthese-Engine übergeben werden soll.Wenn der TtsEngineAction Enumerationswert von aus der -Eigenschaft für den gefunden Action FragmentState wird, der von der State -Eigenschaft der einzelnen -Instanzen zurückgegeben TextFragment wird, ist Speak die Implementierung
Übersetzt den Amerikanischen in Britischismen im zu sprechenden Text.
Wenn die EventInterest -Eigenschaft für die ITtsEngineSite Schnittstellen, die für die Implementierung bereitgestellt werden, den WordBoundary Ereignistyp unterstützt, wird eine SpeechEventInfo -Instanz verwendet, um ein Ereignis zu erstellen, um eine Synthesizer-Statusanzeige zu steuern.
Die Parameter für SpeechEventInfo , einschließlich des von EventParameterType zurückgegebenen Memberwerts, ParameterType werden verwendet, um das über die -Methode generierte Ereignis zu
LogSpeechEvent
protokollieren.
Eine Sprachrendering-Engine wird dann mit dem geänderten TextFragment Array aufgerufen.
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));
LogSpeechEvent(spEvent.EventId,
spEvent.ParameterType,
spEvent.Param1,
spEvent.Param2);
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);
}
Hinweise
Die EventParameterType
-Enumeration wird beim Erstellen eines SpeechEventInfo -Objekts verwendet. Ein EventParameterType
Enumerationsmember, der als parameterType
Argument an den Konstruktor für übergeben SpeechEventInfo wird, gibt an, wie das param2
Argument des Konstruktors (das ein sein IntPtr muss) interpretiert wird.
Die Auswahl von EventParameterType
wird durch den Typ des angeforderten Ereignisses bestimmt, wie von einem Member von System.Speech.Synthesis.TtsEngine.TtsEventId angegeben.
Ausführliche Informationen zur Verwendung von EventParameterType
finden Sie in der Dokumentation für . EventId
Hinweis
Derzeit können Instanzen einer verwalteten synthetischen Sprach-Engines, die mit den Membern des Namespace geschrieben wurden, ressourcen nach der System.Speech.Synthesis Erstellung nicht ändern.