SpeechEventInfo SpeechEventInfo SpeechEventInfo SpeechEventInfo Struct

Definition

Wird verwendet, um den Typ des Ereignisses und dessen Argumente anzugeben (falls vorhanden), die als Teil des Renderings von Text zu Sprache durch eine benutzerdefinierte Sprachsynthese-Engine generiert werden.Used to specify the type of event, and its arguments (if any) to be generated as part of the rendering of text to speech by a custom synthetic speech engine.

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
SpeechEventInfoSpeechEventInfoSpeechEventInfoSpeechEventInfo
Implementiert

Beispiele

Das folgende Beispiel ist Teil einer benutzerdefinierten Sprachsynthese Implementierung, die von TtsEngineSsmlverwendet wird, und verwendet die TextFragmentVerwendung SpeechEventInfovon FragmentState,, und.TtsEventIdThe example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId

Die Implementierung vonSpeakThe implementation of Speak

  1. Empfängt ein Array von TextFragment -Instanzen und erstellt ein neues Array TextFragment von-Instanzen, die an Speak die-Methode in einer zugrunde liegenden Synthese-Engine weitergeleitet werden sollen.Receives an array of TextFragment instances and creates a new array of TextFragment instances to be passed to the Speak method on an underlying synthesis engine.

  2. Wenn der TtsEngineAction Enumerationswert State FragmentState Action , der von der-Eigenschaft der zurückgegeben wird, die TextFragment von der Speak-Eigenschaft jeder Instanz zurückgegeben wurde, ist,If the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • Übersetzt Amerikanismus in britishisms in den zu sprechenden Text.Translates Americanism to Britishisms in the text to be spoken.

    • Wenn die EventInterest -Eigenschaft für ITtsEngineSite die Schnittstellen, die für die WordBoundary Implementierung bereitgestellt werden SpeechEventInfo , den Ereignistyp unterstützt, wird eine-Instanz verwendet, um ein Ereignis zu erstellenIf the EventInterest property on the ITtsEngineSite interfaces provided to the implementation support the WordBoundary event type, a SpeechEventInfo instance is used to create an event to drive a synthesizer progress meter is created.

  3. Anschließend wird ein sprachrenderingmodul mit dem TextFragment geänderten Array aufgerufen.A speech rendering engine is then called with the modified TextFragment array.

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 Sprachplattform an, SpeechEventInfo indem eine AddEvents entsprechende Instanz für ITtsEngineSite Member des Engine-Standort Objekts bereit Speakgestellt wird, das an Implementierungen von weitergeleitet wird. AddLexiconund .RemoveLexiconA custom speech synthesis engine requests the generation of events under the Speech Platform by providing an appropriate SpeechEventInfo instance to AddEvents member of the ITtsEngineSite engine site object passed to implementations of Speak, AddLexicon, and RemoveLexicon.

Konstruktoren

SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Konstruiert ein entsprechendes SpeechEventInfo-Element.Constructs an appropriate SpeechEventInfo.

Eigenschaften

EventId EventId EventId EventId

Ermittelt und bestimmt das Sprachplattformereignis, das eine Instanz von SpeechEventInfo normalerweise anfordert.Gets and set the Speech platform event which an instance of SpeechEventInfo is used to request.

Param1 Param1 Param1 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.Gets and set the integer value (param1 in the constructor) to be passed to the Speech platform to generate an event the current instance of SpeechEventInfo is used to request.

Param2 Param2 Param2 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.Gets and set the System.IntPtr instance (param2 in the constructor) referencing the object to be passed to the Speech platform to generate an event the current instance of SpeechEventInfo is used to request.

ParameterType ParameterType ParameterType 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.Returns the data type of the object pointed to by the IntPtr returned by the Param2 parameter on the current SpeechEventInfo object.

Methoden

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob ein angegebenes Objekt eine Instanz von SpeechEventInfo und gleich der aktuellen Instanz von SpeechEventInfo ist.Determines whether a specified object is an instance of SpeechEventInfo and equal to the current instance of SpeechEventInfo.

Equals(SpeechEventInfo) Equals(SpeechEventInfo) Equals(SpeechEventInfo) Equals(SpeechEventInfo)

Bestimmt, ob ein angegebenes SpeechEventInfo-Objekt gleich der aktuellen Instanz von SpeechEventInfo ist.Determines whether a specified SpeechEventInfo object is equal to the current instance of SpeechEventInfo.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Stellt einen Hashcode für ein SpeechEventInfo-Objekt bereit.Provides a hash code for a SpeechEventInfo object.

Operatoren

Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo)

Bestimmt, ob zwei Instanzen von SpeechEventInfo gleich sind.Determines whether two instances of SpeechEventInfo are equal.

Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo)

Bestimmt, ob zwei Instanzen von SpeechEventInfo ungleich sind.Determines whether two instances of SpeechEventInfo are not equal.

Gilt für: