Freigeben über


SpeechEventInfo Struktur

Definition

Wird verwendet, um den Typ des Ereignisses und seine Argumente (falls vorhanden) anzugeben, die als Teil des Renderns von Text in Sprache durch eine benutzerdefinierte synthetische Sprach-Engine generiert werden sollen.

public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
Vererbung
SpeechEventInfo
Implementiert

Beispiele

Das folgende Beispiel ist Teil einer benutzerdefinierten Sprachsyntheseimplementierung, die von TtsEngineSsmlerbt und die Verwendung von TextFragment, SpeechEventInfo, FragmentStateund verwendet. TtsEventId

Die Implementierung von Speak

  1. Empfängt ein Array von TextFragment Instanzen und erstellt ein neues Array von TextFragment Instanzen, die an die Speak -Methode in einer zugrunde liegenden Synthese-Engine übergeben werden sollen.

  2. Wenn der TtsEngineAction Enumerationswert von, der von der Action -Eigenschaft gefunden wird, für die FragmentState von der State -Eigenschaft der einzelnen TextFragment Instanzen zurückgegeben wird, lautet Speakdie -Implementierung.

    • Übersetzt Amerikanismus in den zu sprechenden Text in britishisms.

    • Wenn die EventInterest -Eigenschaft auf den Schnittstellen, die ITtsEngineSite für die Implementierung bereitgestellt werden, den WordBoundary Ereignistyp unterstützt, wird eine SpeechEventInfo -Instanz verwendet, um ein Ereignis zu erstellen, um eine Synthesizer-Fortschrittsanzeige zu steuern.

  3. Anschließend wird mit dem geänderten TextFragment Array eine Sprachrendering-Engine 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));  
        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

Eine benutzerdefinierte Sprachsynthese-Engine fordert die Generierung von Ereignissen unter der Speech-Plattform an, indem eine geeignete SpeechEventInfo Instanz für AddEvents das Mitglied des Engine-Websiteobjekts bereitgestellt wird, das ITtsEngineSite an Implementierungen von Speak, AddLexiconund RemoveLexiconübergeben wird.

Konstruktoren

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Konstruiert ein entsprechendes SpeechEventInfo-Element.

Eigenschaften

EventId

Ermittelt und bestimmt das Sprachplattformereignis, das eine Instanz von SpeechEventInfo normalerweise anfordert.

Param1

Ermittelt und bestimmt den an die Sprachplattform zu übergebenden integer-Wert (param1 im Konstruktor), um ein Ereignis zu generieren, dass die aktuelle Instanz von SpeechEventInfo normalerweise anfordert.

Param2

Ermittelt und bestimmt die System.IntPtr-Instanz (param2 im Konstruktor), die auf das an die Sprachplattform zu übergebende Objekt verweist, um ein Ereignis zu generieren, das die aktuelle Instanz von SpeechEventInfo normalerweise anfordert.

ParameterType

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.

Methoden

Equals(Object)

Bestimmt, ob ein angegebenes Objekt eine Instanz von SpeechEventInfo und gleich der aktuellen Instanz von SpeechEventInfoist.

Equals(SpeechEventInfo)

Bestimmt, ob ein angegebenes SpeechEventInfo -Objekt gleich der aktuellen Instanz von SpeechEventInfoist.

GetHashCode()

Stellt einen Hashcode für ein -Objekt bereit SpeechEventInfo .

Operatoren

Equality(SpeechEventInfo, SpeechEventInfo)

Bestimmt, ob zwei Instanzen von SpeechEventInfo gleich sind.

Inequality(SpeechEventInfo, SpeechEventInfo)

Bestimmt, ob zwei Instanzen von SpeechEventInfo ungleich sind.

Gilt für: