SpeechEventInfo Struktura

Definicja

Służy do określania typu zdarzenia i jego argumentów (jeśli istnieją) do wygenerowania w ramach renderowania tekstu na mowę przez niestandardowy aparat syntetycznej mowy.

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)
Dziedziczenie
SpeechEventInfo
Implementuje

Przykłady

Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczonej TextFragmentz TtsEngineSsml, i przy użyciu funkcji , SpeechEventInfo, FragmentStateiTtsEventId

Implementacja programu Speak

  1. Odbiera tablicę TextFragment wystąpień i tworzy nową tablicę TextFragment wystąpień, która ma zostać przekazana do Speak metody w podstawowym aucie syntezy.

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

    • Tłumaczy amerykanizm na Brytyjczyków w tekście, aby mówić.

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

  3. Aparat renderowania mowy jest następnie wywoływany za pomocą zmodyfikowanej TextFragment tablicy.

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

Niestandardowy aparat syntezy mowy żąda generowania zdarzeń w ramach platformy rozpoznawania mowy przez udostępnienie odpowiedniego SpeechEventInfo wystąpienia członkowi ITtsEngineSiteAddEvents obiektu witryny aparatu przekazanego Speakdo implementacji elementów , AddLexiconi RemoveLexicon.

Konstruktory

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Tworzy odpowiedni SpeechEventInfoelement .

Właściwości

EventId

Pobiera i ustawia zdarzenie platformy rozpoznawania mowy, którego wystąpienie SpeechEventInfo jest używane do żądania.

Param1

Pobiera i ustawia integer wartość (param1 w konstruktorze), która ma zostać przekazana do platformy rozpoznawania mowy w celu wygenerowania zdarzenia, którego bieżące wystąpienie SpeechEventInfo jest używane do żądania.

Param2

Pobiera i ustawia System.IntPtr wystąpienie (param2 w konstruktorze) odwołujące się do obiektu, który ma zostać przekazany do platformy rozpoznawania mowy w celu wygenerowania zdarzenia, którego bieżące wystąpienie SpeechEventInfo jest używane do żądania.

ParameterType

Zwraca typ danych obiektu wskazywanego przez IntPtr parametr zwrócony przez Param2 parametr w bieżącym SpeechEventInfo obiekcie.

Metody

Equals(Object)

Określa, czy określony obiekt jest wystąpieniem SpeechEventInfo klasy i jest równe bieżącemu wystąpieniu klasy SpeechEventInfo.

Equals(SpeechEventInfo)

Określa, czy określony SpeechEventInfo obiekt jest równy bieżącemu wystąpieniu klasy SpeechEventInfo.

GetHashCode()

Udostępnia kod skrótu SpeechEventInfo dla obiektu.

Operatory

Equality(SpeechEventInfo, SpeechEventInfo)

Określa, czy dwa wystąpienia SpeechEventInfo są równe.

Inequality(SpeechEventInfo, SpeechEventInfo)

Określa, czy dwa wystąpienia SpeechEventInfo nie są równe.

Dotyczy