Compartir a través de


SpeechEventInfo(Int16, Int16, Int32, IntPtr) Constructor

Definición

Crea un elemento SpeechEventInfo adecuado.

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)

Parámetros

eventId
Int16

Una instancia de TtsEventId que indica el tipo de evento de la plataforma de voz que el objeto SpeechEventInfo va a administrar.

parameterType
Int16

Una instancia de EventParameterType que indica cómo va a interpretarse la referencia de System.IntPtr de param2 e, implícitamente, el uso de param1.

param1
Int32

Un valor entero que se pasará a la plataforma de voz cuando se genere el evento solicitado por la instancia de SpeechEventInfo que se construirá.

El significado exacto de este entero está determinado implícitamente por el valor de parameterType.

param2
IntPtr

nativeint

Una instancia de System.IntPtr que hace referencia a un objeto. que se pasará a la plataforma de voz cuando se genere el evento solicitado por la instancia de SpeechEventInfo que se construirá.

El valor parameterType define explícitamente el tipo al que se debe hacer referencia. El valor System.IntPtr.Zero.

Ejemplos

El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que hereda de y usa TtsEngineSsml TextFragment , , SpeechEventInfo FragmentState y TtsEventId

La implementación de Speak

  1. Recibe una matriz de instancias y crea una nueva matriz de instancias que se pasarán al método TextFragment en un motor de TextFragment Speak síntesis subyacente.

  2. Si el TtsEngineAction valor de enumeración de encontrado en la propiedad en el devuelto por la propiedad de cada instancia Action es , la FragmentState State TextFragment Speak implementación

    • Traduce el americanismo a los britishismos en el texto que se va a hablar.

    • Si la propiedad en las interfaces proporcionadas a la implementación admite el tipo de evento , se usa una instancia de para crear un evento para impulsar un medidor de progreso EventInterest ITtsEngineSite del WordBoundary SpeechEventInfo sintetizador.

  3. A continuación, se llama a un motor de representación de voz con la matriz TextFragment modificada.

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

}  

Comentarios

Los valores permitidos que se usan para , y y su significado viene determinado por el tipo de evento que se solicita, tal y como especifica el miembro parameterType param1 de utilizado para param2 TtsEventId eventId .

Para obtener información detallada sobre los valores adecuados parameterType para , y , consulte la documentación de param1 param2 . EventId

El tipo de los eventos que se pueden controlar mediante la infraestructura de la plataforma de voz se puede obtener a través de la propiedad en la implementación del sitio del EventInterest motor de síntesis de ITtsEngineSite .

Se aplica a