Compartir a través de


SpeechEventInfo Estructura

Definición

Se usa para especificar el tipo de evento y sus argumentos (si los hay) que se van a generar como parte de la representación de texto en voz mediante un motor de voz sintético personalizado.

public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
Herencia
SpeechEventInfo
Implementaciones

Ejemplos

El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que hereda de TtsEngineSsmly mediante 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 TextFragment instancias que se pasarán al Speak método en un motor de síntesis subyacente.

  2. Si el TtsEngineAction valor de enumeración encontrado de la Action propiedad en la FragmentState propiedad devuelta 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 decir.

    • 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.

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

Un motor de síntesis de voz personalizado solicita la generación de eventos en la plataforma de voz proporcionando una instancia adecuada SpeechEventInfo para miembro del ITtsEngineSite objeto de sitio del motor pasado a implementaciones de Speak, AddLexicony RemoveLexiconAddEvents .

Constructores

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Crea un elemento SpeechEventInfo adecuado.

Propiedades

EventId

Obtiene y establece el evento de la plataforma de voz que usa una instancia de SpeechEventInfo para realizar solicitudes.

Param1

Obtiene y establece el valor de integer (param1 en el constructor) que se pasará a la plataforma de voz para generar un evento que usa instancia actual de SpeechEventInfo para efectuar solicitudes.

Param2

Obtiene y establece la instancia de System.IntPtr (param2 en el constructor) que hace referencia al objeto que se pasará a la plataforma de voz para generar un evento que usa la instancia actual de SpeechEventInfo para realizar solicitudes.

ParameterType

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

Métodos

Equals(Object)

Determina si un objeto especificado es una instancia de SpeechEventInfo y es igual a la instancia actual de SpeechEventInfo.

Equals(SpeechEventInfo)

Determina si un objeto especificado SpeechEventInfo es igual a la instancia actual de SpeechEventInfo.

GetHashCode()

Proporciona un código hash para un SpeechEventInfo objeto .

Operadores

Equality(SpeechEventInfo, SpeechEventInfo)

Determina si dos instancias de SpeechEventInfo son iguales.

Inequality(SpeechEventInfo, SpeechEventInfo)

Determina si dos instancias de SpeechEventInfo no son iguales.

Se aplica a