SpeechEventInfo.ParameterType Eigenschaft
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.
Gibt den Datentyp des Objekts zurück, auf das auf durch IntPtr gezeigt wird, der durch den Param2-Parameter auf dem aktuellen SpeechEventInfo-Objekt zurückgegeben wird.
public:
property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short
Eigenschaftswert
Ein short
-Wert entsprechend einem Member der EventParameterType- Enumeration, die den Datentyp des Objekts angibt, auf das durch den IntPtr, gezeigt wird, der durch Param2-Parameter zurückgegeben wurde und als zweites Argument für den Konstruktor des aktuellen SpeechEventInfo-Objekts verwendet wurde.
Beispiele
Das folgende Beispiel ist Teil einer benutzerdefinierten Sprachsyntheseimplementierung, die von erbt und die Verwendung von TtsEngineSsml TextFragment , , und SpeechEventInfo FragmentState verwendet. TtsEventId
Die Implementierung von Speak
Empfängt ein Array von -Instanzen und erstellt ein neues Array von -Instanzen, das an die -Methode in einer zugrunde TextFragment TextFragment
Speak
liegenden Synthese-Engine übergeben werden soll.Wenn der Enumerationswert von aus der -Eigenschaft auf dem gefunden wurde, der von der -Eigenschaft jeder Instanz TtsEngineAction Action zurückgegeben FragmentState State TextFragment Speak wird, ist die -Implementierung.
Übersetzt Denamenismus in Britishisms im zu sprechenden Text.
Wenn die -Eigenschaft auf den Schnittstellen, die für die Implementierung bereitgestellt werden, den Ereignistyp unterstützt, wird eine -Instanz verwendet, um ein Ereignis zu erstellen, um eine EventInterest ITtsEngineSite Synthetizer-Statusanzeige zu WordBoundary SpeechEventInfo erzeugen.
Die Parameter auf SpeechEventInfo , einschließlich , werden ParameterType verwendet, um das über die -Methode generierte Ereignis zu
LogSpeechEvent
protokollieren.
Eine Sprachrendering-Engine wird dann mit dem geänderten Array TextFragment 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 Anforderungen für den Verweis auf die -Eigenschaft von werden eindeutig durch die Werte der -Eigenschaft und der System.IntPtr
Param2 SpeechEventInfo EventId ParameterType -Eigenschaft der -Instanz SpeechEventInfo bestimmt.
Ausführliche Informationen zur Verwendung von finden Sie Param2 in der Dokumentation für EventId .