Compartir a través de


SpeechEventInfo.ParameterType Propiedad

Definición

Devuelve el tipo de datos del objeto al que señala IntPtr devuelto por el parámetro Param2 en el objeto SpeechEventInfo actual.

public:
 property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short

Valor de propiedad

Int16

Un valor de short correspondiente a un miembro de la enumeración EventParameterType que indica el tipo de datos del objeto al que apunta el IntPtr devuelto por el parámetro Param2 y que se usa como segundo argumento del constructor del objeto SpeechEventInfo actual.

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.

      Los parámetros de SpeechEventInfo , ParameterType incluidos, se usan para registrar el evento generado a través del LogSpeechEvent método .

  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));  
         LogSpeechEvent(spEvent.EventId,   
                        spEvent.ParameterType,   
                        spEvent.Param1,  
                        spEvent.Param2);  
        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 requisitos de la referencia de la propiedad de se determinan de forma única por System.IntPtr los valores de las propiedades y de la instancia de Param2 SpeechEventInfo EventId ParameterType SpeechEventInfo .

Para obtener información detallada sobre cómo usar Param2 , consulte la documentación de EventId .

Se aplica a