Sdílet prostřednictvím


SpeechEventInfo.Param1 Vlastnost

Definice

Získá a nastaví integer hodnotu ( param1 v konstruktoru), která má být předána platformě pro rozpoznávání řeči, aby vygenerovala událost, která SpeechEventInfo je použita pro vyžádání aktuální instance.

public:
 property int Param1 { int get(); };
public int Param1 { get; }
member this.Param1 : int
Public ReadOnly Property Param1 As Integer

Hodnota vlastnosti

Int32

Vrátí hodnotu, integer která má být předána platformě řeči, pokud SpeechEventInfo je vygenerována událost určená aktuální instancí.

Příklady

Níže uvedený příklad je součástí vlastní implementace rozpoznávání řeči, která dědí z TtsEngineSsml a používá použití TextFragment , SpeechEventInfo , FragmentState a. TtsEventId

Implementace Speak

  1. Přijme pole TextFragment instancí a vytvoří nové pole TextFragment instancí, které se má předat Speak metodě na podkladovém stroji syntézy.

  2. Pokud TtsEngineAction je hodnota výčtu, kterou najde Action , z vlastnosti FragmentState vrácené State vlastností každé TextFragment instance Speak , implementace

    • Překládá se na Britishisms v textu, který se má vyhlasovat.

    • Pokud EventInterest vlastnost na ITtsEngineSite rozhraních poskytovaných implementací podporuje WordBoundary Typ události, vytvoří se SpeechEventInfo instance pro vytvoření události, která bude řídit měření průběhu syntetizátoru.

      Parametry SpeechEventInfo , včetně, Param1 jsou používány k protokolování události vygenerované LogSpeechEvent metodou.

  3. Modul pro vykreslování řeči se pak zavolá se změněným TextFragment polem.

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

}  

Poznámky

Požadavky a význam Param1 vlastnosti třídy SpeechEventInfo jsou jednoznačně určeny hodnotami EventId ParameterType vlastností a SpeechEventInfo instance.

Podrobné informace o tom, jak používat Param1 , najdete v dokumentaci k EventId .

Platí pro