Condividi tramite


SpeechEventInfo Struct

Definizione

Usato per specificare il tipo di evento e i relativi argomenti (se presenti) da generare come parte del rendering del testo nella voce da parte di un motore di riconoscimento vocale sintetico personalizzato.

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)
Ereditarietà
SpeechEventInfo
Implementazioni

Esempio

L'esempio seguente fa parte di un'implementazione personalizzata della sintesi vocale che eredita da TtsEngineSsmle usando l'uso di TextFragment, SpeechEventInfo, FragmentStatee TtsEventId

Implementazione di Speak

  1. Riceve una matrice di TextFragment istanze e crea una nuova matrice di istanze da passare al Speak metodo su un motore di TextFragment sintesi sottostante.

  2. Se il TtsEngineAction valore di enumerazione trovato dalla Action proprietà nell'oggetto FragmentState restituito dalla State proprietà di ogni TextFragment istanza è Speak, l'implementazione

    • Traduce l'americanismo in britishismi nel testo da pronunciare.

    • Se la EventInterest proprietà nelle ITtsEngineSite interfacce fornite all'implementazione supporta il WordBoundary tipo di evento, viene usata un'istanza SpeechEventInfo di per creare un evento per guidare un indicatore di stato del sintetizzatore.

  3. Viene quindi chiamato un motore di rendering vocale con la matrice modificata TextFragment .

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

}  

Commenti

Un motore di sintesi vocale personalizzato richiede la generazione di eventi in Speech Platform fornendo un'istanza appropriata SpeechEventInfo al AddEvents membro dell'oggetto sito del ITtsEngineSite motore passato alle implementazioni di Speak, AddLexicone RemoveLexicon.

Costruttori

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Costruisce un oggetto SpeechEventInfo appropriato.

Proprietà

EventId

Ottiene e imposta l'evento della piattaforma di riconoscimento vocale richiesto da un'istanza di SpeechEventInfo.

Param1

Ottiene e imposta il valore integer (param1 nel costruttore) da passare alla piattaforma di riconoscimento vocale in modo da generare un evento richiesto dall'istanza corrente di SpeechEventInfo.

Param2

Ottiene e imposta l'istanza di System.IntPtr (param2 nel costruttore) cha fa riferimento all'oggetto da passare alla piattaforma di riconoscimento vocale in modo da generare un evento richiesto dall'istanza corrente di SpeechEventInfo.

ParameterType

Restituisce il tipo di dati dell'oggetto a cui fa riferimento IntPtr restituito dal parametro Param2 sull'oggetto SpeechEventInfo corrente.

Metodi

Equals(Object)

Determina se un oggetto specificato è un'istanza di SpeechEventInfo e uguale all'istanza corrente di SpeechEventInfo.

Equals(SpeechEventInfo)

Determina se un oggetto specificato SpeechEventInfo è uguale all'istanza corrente di SpeechEventInfo.

GetHashCode()

Fornisce un codice hash per un SpeechEventInfo oggetto .

Operatori

Equality(SpeechEventInfo, SpeechEventInfo)

Determina se due istanze dell'oggetto SpeechEventInfo sono uguali.

Inequality(SpeechEventInfo, SpeechEventInfo)

Determina se due istanze di un oggetto SpeechEventInfo non sono uguali.

Si applica a