Sdílet prostřednictvím


SpeechEventInfo Struktura

Definice

Slouží k určení typu události a jejích argumentů (pokud existují), které se mají generovat jako součást vykreslování textu na řeč vlastním syntetickým modulem řeči.

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)
Dědičnost
SpeechEventInfo
Implementuje

Příklady

Následující příklad je součástí vlastní implementace syntézy řeči zděděné z TtsEngineSsmla pomocí , TextFragmentSpeechEventInfo, FragmentStateaTtsEventId

Provádění Speak

  1. Přijme pole TextFragment instancí a vytvoří nové pole TextFragment instancí, které se mají předat Speak metodě v podkladovém syntezčním modulu.

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

    • V textu, který se má vyslovovat, přeloží americanismus na britštinu.

    • EventInterest Pokud vlastnost na ITtsEngineSite rozhraních poskytovaných implementaci podporuje WordBoundary typ události, SpeechEventInfo instance se použije k vytvoření události, která bude řídit měřič průběhu syntetizátoru.

  3. Modul pro vykreslování řeči se pak zavolá s upravený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));  
        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

Vlastní modul syntézy řeči požaduje generování událostí v rámci platformy Speech tím, že poskytuje odpovídající SpeechEventInfo instanci členu AddEvents objektu ITtsEngineSite webu modulu předaného implementacím Speak, AddLexicona RemoveLexicon.

Konstruktory

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Vytvoří odpovídající SpeechEventInfoobjekt .

Vlastnosti

EventId

Získá a nastaví událost platformy Speech, kterou instance SpeechEventInfo používá k vyžádání.

Param1

Získá a nastaví integer hodnotu (param1 v konstruktoru), která se má předat platformě Speech pro vygenerování události aktuální instance SpeechEventInfo se používá k vyžádání.

Param2

Získá a nastavte System.IntPtr instanci (param2 v konstruktoru) odkazující na objekt, který má být předán platformě Speech k vygenerování události aktuální instance SpeechEventInfo se používá k vyžádání.

ParameterType

Vrátí datový typ objektu, na který IntPtr odkazuje parametr vrácený Param2 parametrem aktuálního SpeechEventInfo objektu.

Metody

Equals(Object)

Určuje, zda je zadaný objekt instancí SpeechEventInfo a je rovna aktuální instanci objektu SpeechEventInfo.

Equals(SpeechEventInfo)

Určuje, zda je zadaný SpeechEventInfo objekt roven aktuální instanci objektu SpeechEventInfo.

GetHashCode()

Poskytuje kód hash pro SpeechEventInfo objekt.

Operátory

Equality(SpeechEventInfo, SpeechEventInfo)

Určuje, zda jsou dvě instance rovny SpeechEventInfo .

Inequality(SpeechEventInfo, SpeechEventInfo)

Určuje, zda jsou si dvě instance rovny SpeechEventInfo .

Platí pro