TtsEventId TtsEventId TtsEventId TtsEventId Enum

Definición

Enumera los tipos de eventos de la síntesis de voz.Enumerates types of speech synthesis events.

public enum class TtsEventId
public enum TtsEventId
type TtsEventId = 
Public Enum TtsEventId
Herencia

Campos

AudioLevel AudioLevel AudioLevel AudioLevel 9

Identifica los eventos generados cuando un motor de síntesis de voz completa un cambio de nivel de sonido mientras habla.Identifies events generated when a speech synthesize engine completes an audio level change while speaking.

Bookmark Bookmark Bookmark Bookmark 4

Identifica los eventos generados cuando un motor de síntesis de voz encuentra un marcador mientras habla.Identifies events generated when a speech synthesize engine encounters a bookmark while speaking.

EndInputStream EndInputStream EndInputStream EndInputStream 2

Identifica los eventos generados cuando un motor de síntesis de voz encuentra el final de su flujo de entrada mientras habla.Identifies events generated when a speech synthesize engine encounters the end of its input stream while speaking.

Phoneme Phoneme Phoneme Phoneme 6

Identifica los eventos generados cuando un motor de síntesis de voz completa un fonema mientras habla.Identifies events generated when a speech synthesize engine completes a phoneme while speaking.

SentenceBoundary SentenceBoundary SentenceBoundary SentenceBoundary 7

Identifica los eventos generados cuando un motor de síntesis de voz completa una frase mientras habla.Identifies events generated when a speech synthesize engine completes a sentence while speaking.

StartInputStream StartInputStream StartInputStream StartInputStream 1

Identifica los eventos generados cuando un motor de síntesis de voz comienza a pronunciar un flujo.Identifies events generated when a speech synthesize engine a begins speaking a stream.

Viseme Viseme Viseme Viseme 8

Identifica los eventos generados cuando un motor de síntesis de voz completa un visema mientras habla.Identifies events generated when a speech synthesize engine completes a viseme while speaking.

VoiceChange VoiceChange VoiceChange VoiceChange 3

Identifica los eventos generados cuando un motor de síntesis de voz encuentra un cambio de voz mientras habla.Identifies events generated when a speech synthesize engine encounters a change of Voice while speaking.

WordBoundary WordBoundary WordBoundary WordBoundary 5

Identifica los eventos generados cuando un motor de síntesis de voz completa una palabra mientras habla.Identifies events generated when a speech synthesize engine completes a word while speaking.

Ejemplos

El siguiente ejemplo forma parte de una implementación de síntesis de voz personalizada que TtsEngineSsmlhereda de y utiliza TextFragmentlas SpeechEventInfoclases FragmentState,, TtsEventId y.The following example is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the TextFragment, SpeechEventInfo, FragmentState, and TtsEventId classes.

La implementación de TtsEngineSsml.Speak incluye los pasos siguientes:The implementation of TtsEngineSsml.Speak includes the following steps:

  1. Recibe una matriz de TextFragment instancias de y crea una nueva matriz TextFragment de instancias de Speak que se van a pasar al método en un motor de síntesis subyacente.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. Si la Action propiedad de cada TextFragment.State instancia es igual a TtsEngineAction.Speak, el código hace lo siguiente:If the Action property of each TextFragment.State instance is equal to TtsEngineAction.Speak, the code does the following:

    • Traduce el Inglés de Estados Unidos al inglés británico en el texto que se va a hablar.Translates American English to British English in the text to be spoken.

    • Si la ITtsEngineSite.EventInterest propiedad proporcionada a la implementación es compatible WordBoundary con el tipo de SpeechEventInfo evento, se usa una instancia de para crear un evento para impulsar la creación de un medidor de progreso de sintetizador.If the ITtsEngineSite.EventInterest property provided to the implementation supports the WordBoundary event type, a SpeechEventInfo instance is used to create an event to drive a synthesizer progress meter is created.

  3. A continuación, se llama a un motor de representación de TextFragment voz con la matriz modificada.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);

}

Comentarios

Los motores de síntesis de voz personalizados definen los tipos de eventos que se envían a la infraestructura de TtsEventIdsintetizador de la plataforma de voz con el.Custom speech synthesis engines define the types of events submitted to the Speech platform synthesizer infrastructure with the TtsEventId.

La especificación se realiza estableciendo la EventId propiedad de SpeechEventInfo las instancias de que AddEvents se pasan al miembro de Speak la ITtsEngineSite clase que implementa la interfaz que se pasa al método en un elemento personalizado del motor de voz implementación de TtsEngineSsml.Specification is performed by setting the EventId property of SpeechEventInfo instances passed to the AddEvents member of the class implementing the ITtsEngineSite interface passed to the Speak method on a custom speech engine's implementation of TtsEngineSsml.

La infraestructura de la plataforma de voz indica el tipo de eventos que está controlando actualmente a ITtsEngineSite través de la EventInterest propiedad en que se pasa a la implementación de Speak.The Speech platform infrastructure indicates the type of events it is currently handling through the EventInterest property on the ITtsEngineSite passed to the speak implementation.

El valor de EventInterest es una máscara de bits, donde los TtsEventId miembros de definen la ubicación del bit correspondiente al tipo de evento.The value of EventInterest is a bitmask, where the members of TtsEventId define the location of the bit corresponding to the event type. Por ejemplo, WordBoundary tiene un valor de cinco (5), lo que significa que el quinto bit del valor EventInterest devuelto por indica si el sitio admite el tipo de evento.For example, WordBoundary has a value of five (5), meaning the fifth bit in the value returned by EventInterest indicates if the site supports the event type.

Se aplica a