SpeechEventInfo(Int16, Int16, Int32, IntPtr) Costruttore

Definizione

Costruisce un oggetto SpeechEventInfo appropriato.

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)

Parametri

eventId
Int16

Istanza di TtsEventId che indica l'ordine dell'evento della piattaforma di riconoscimento vocale che l'oggetto SpeechEventInfo deve gestire.

parameterType
Int16

Istanza di EventParameterType che indica come il riferimento System.IntPtr di param2 deve essere interpretato e, implicitamente, l'utilizzo di param1.

param1
Int32

Valore Integer da passare alla piattaforma di riconoscimento vocale quando viene generato l'evento richiesto dall'istanza di SpeechEventInfo da costruire.

Il significato esatto di questo Integer è determinato in modo implicito dal valore di parameterType.

param2
IntPtr

nativeint

Istanza di System.IntPtr che fa riferimento a un oggetto. da passare alla piattaforma di riconoscimento vocale quando viene generato l'evento richiesto dall'istanza di SpeechEventInfo da costruire.

Il tipo a cui è necessario fare riferimento è definito in modo esplicito dal valore parameterType. Valore System.IntPtr.Zero.

Esempio

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita da e usa TtsEngineSsml TextFragment , , SpeechEventInfo FragmentState e TtsEventId

Implementazione di Speak

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

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

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

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

  3. Un motore di rendering vocale viene quindi chiamato con la matrice TextFragment modificata.

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

I valori consentiti usati per , e e il relativo significato sono dettati dal tipo di evento richiesto, come specificato dal membro di parameterType param1 usato per param2 TtsEventId eventId .

Per informazioni dettagliate sui valori appropriati per parameterType , e , vedere la documentazione param1 param2 per EventId

Il tipo di eventi che possono essere gestiti dall'infrastruttura della piattaforma voce può essere ottenuto tramite la proprietà nell'implementazione del sito del motore EventInterest del sintetizzatore di ITtsEngineSite .

Si applica a