SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) Constructor

Definizione

Costruisce un oggetto SpeechEventInfo appropriato.Constructs an appropriate SpeechEventInfo.

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 Int16 Int16 Int16

Istanza di TtsEventId che indica l'ordine dell'evento della piattaforma di riconoscimento vocale che l'oggetto SpeechEventInfo deve gestire.An instance of TtsEventId indicating the sort of Speech platform event the SpeechEventInfo object is to handle.

parameterType
Int16 Int16 Int16 Int16

Istanza di EventParameterType che indica come il riferimento System.IntPtr di param2 deve essere interpretato e, implicitamente, l'utilizzo di param1.An instance of EventParameterType indicating how the System.IntPtr reference of param2 is to be interpreted, and, by implication, the use of param1.

param1
Int32 Int32 Int32 Int32

Valore Integer da passare alla piattaforma di riconoscimento vocale quando viene generato l'evento richiesto dall'istanza di SpeechEventInfo da costruire.An integer value to be passed to the Speech platform when the event requested by the instance of SpeechEventInfo to be constructed is generated.

Il significato esatto di questo Integer è determinato in modo implicito dal valore di parameterType.The exact meaning of this integer is implicitly determined by the value of parameterType.

param2
IntPtr IntPtr IntPtr IntPtr

Istanza di System.IntPtr che fa riferimento a un oggetto.A System.IntPtr instance referencing an object. da passare alla piattaforma di riconoscimento vocale quando viene generato l'evento richiesto dall'istanza di SpeechEventInfo da costruire.to be passed to the Speech platform when the event requested by the instance of SpeechEventInfo to be constructed is generated.

Il tipo a cui è necessario fare riferimento è definito in modo esplicito dal valore parameterType.The type which must be referenced is explicitly defined by the value parameterType. Valore System.IntPtr.Zero.The value System.IntPtr.Zero.

Esempi

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita TtsEngineSsmlda e usando l'uso di TextFragment, SpeechEventInfo FragmentState, eTtsEventIdThe example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId

Implementazione diSpeakThe implementation of Speak

  1. Riceve una matrice di TextFragment istanze e crea una nuova matrice di TextFragment istanze Speak da passare al metodo su un motore di sintesi sottostante.Receives an array of TextFragment instances and creates a new array of TextFragment instances to be passed to the Speak method on an underlying synthesis engine.

  2. Se il TtsEngineAction valore di enumerazione trovato Action dalla proprietà nell'oggetto FragmentState restituito dalla State proprietà di ogni TextFragment istanza è Speak, l'implementazione diIf the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • Converte l'americano in Britishisms nel testo da pronunciare.Translates Americanism to Britishisms in the text to be spoken.

    • Se la EventInterest proprietà ITtsEngineSite nelle interfacce fornite all'implementazione di supporta il WordBoundary tipo di evento, viene SpeechEventInfo utilizzata un'istanza per creare un evento per la creazione di un indicatore di stato del sintetizzatore.If the EventInterest property on the ITtsEngineSite interfaces provided to the implementation support the WordBoundary event type, a SpeechEventInfo instance is used to create an event to drive a synthesizer progress meter is created.

  3. Viene quindi chiamato un motore di rendering vocale con la TextFragment matrice modificata.A speech rendering engine is then called with the modified TextFragment array.

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 param1usati per param2 parameterType, e e il loro significato sono determinati dal tipo di evento richiesto, come specificato dal membro di TtsEventId usato per eventId.Permitted values used for parameterType, param1, and param2 and their meaning is dictated by the type of event being requested, as specified by the member of TtsEventId used for eventId.

Per informazioni dettagliate sui valori appropriati per parameterType, param1e param2, vedere la documentazione relativa aEventIdFor detailed information on appropriate values for parameterType, param1, and param2, see documentation for EventId

Il tipo di eventi che può essere gestito dall'infrastruttura della piattaforma vocale può essere ottenuto tramite la EventInterest proprietà nell'implementazione del sito del motore di sintetizzatori di. ITtsEngineSiteThe type of the events which can be handled by the Speech platform infrastructure can be obtained through the EventInterest property on the synthesizer engine site implementation of ITtsEngineSite.

Si applica a