Udostępnij za pośrednictwem


SpeechEventInfo(Int16, Int16, Int32, IntPtr) Konstruktor

Definicja

Tworzy odpowiedni element SpeechEventInfo .

public:
 SpeechEventInfo(short eventId, short parameterType, int param1, IntPtr param2);
public SpeechEventInfo (short eventId, short parameterType, int param1, IntPtr param2);
new System.Speech.Synthesis.TtsEngine.SpeechEventInfo : int16 * int16 * int * nativeint -> System.Speech.Synthesis.TtsEngine.SpeechEventInfo
Public Sub New (eventId As Short, parameterType As Short, param1 As Integer, param2 As IntPtr)

Parametry

eventId
Int16

Wystąpienie wskazujące rodzaj zdarzenia platformy TtsEventId mowy, które SpeechEventInfo obiekt ma obsłużyć.

parameterType
Int16

Wystąpienie funkcji wskazujące, jak ma być interpretowane odwołanie EventParameterType System.IntPtr i, param2 implikacja, użycie . param1

param1
Int32

Wartość całkowita, która ma zostać przekazana do platformy rozpoznawania mowy podczas generowania zdarzenia żądanego przez wystąpienie klasy do SpeechEventInfo skonstruowania.

Dokładne znaczenie tej liczby całkowitej jest niejawnie określane przez wartość parameterType .

param2
IntPtr

nativeint

Wystąpienie System.IntPtr odwołujące się do obiektu. przekazywany do platformy rozpoznawania mowy podczas generowania zdarzenia żądanego przez wystąpienie klasy do SpeechEventInfo skonstruowania.

Typ, do którego należy się odwołać, jest jawnie definiowany przez wartość parameterType . Wartość System.IntPtr.Zero .

Przykłady

Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczącej z funkcji i używającej wartości TtsEngineSsml , TextFragment , SpeechEventInfo FragmentState i TtsEventId

Implementacja programu Speak

  1. Odbiera tablicę wystąpień i tworzy nową tablicę wystąpień, które mają zostać przekazane do metody w TextFragment TextFragment Speak bazowym a aparatze syntezy.

  2. Jeśli wartość TtsEngineAction wyliczenia według znalezionej we właściwości zwróconej przez właściwość każdego wystąpienia to Action FragmentState , State TextFragment Speak implementacja

    • Tłumaczy americanizm na britishisms w tekście, który ma być wypowiadany.

    • Jeśli właściwość w interfejsach dostarczonych do implementacji obsługuje typ zdarzenia, wystąpienie jest używane do utworzenia zdarzenia w celu utworzenia miernika postępu EventInterest ITtsEngineSite WordBoundary SpeechEventInfo syntezatora.

  3. Aparat renderowania mowy jest następnie wywoływany z zmodyfikowaną TextFragment tablicą.

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);  

}  

Uwagi

Dozwolone wartości używane dla wartości , i oraz ich znaczenie są określane przez typ żądanego zdarzenia określony przez członka dla parameterType param1 param2 TtsEventId . eventId

Aby uzyskać szczegółowe informacje na temat odpowiednich wartości parameterType dla , i , zobacz param1 param2 dokumentację EventId

Typ zdarzeń, które mogą być obsługiwane przez infrastrukturę platformy rozpoznawania mowy, można uzyskać za pośrednictwem właściwości w implementacji lokacji aparatu EventInterest syntezatora ITtsEngineSite .

Dotyczy