Compartir vía


SpeechEventInfo.ParameterType Propiedad

Definición

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

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

Valor de propiedad

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

Ejemplos

El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que hereda de TtsEngineSsmly usa el uso de TextFragment, SpeechEventInfo, FragmentStatey TtsEventId

La implementación de Speak

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

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

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

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

      Los parámetros de SpeechEventInfo, incluidos ParameterType , 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 modificada 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));
         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 System.IntPtr referencia de la Param2 propiedad de SpeechEventInfo se determinan de forma única por los valores de las EventId propiedades y ParameterType de la SpeechEventInfo instancia.

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

Se aplica a