TtsEventId Enumeração

Definição

Enumera os tipos de eventos de síntese de fala.Enumerates types of speech synthesis events.

public enum class TtsEventId
public enum TtsEventId
type TtsEventId = 
Public Enum TtsEventId
Herança
TtsEventId

Campos

AudioLevel 9

Identifica os eventos gerados quando um mecanismo sintetizador de fala conclui uma alteração do nível de áudio durante a fala.Identifies events generated when a speech synthesize engine completes an audio level change while speaking.

Bookmark 4

Identifica os eventos gerados quando um mecanismo sintetizador de fala encontra um indicador durante a fala.Identifies events generated when a speech synthesize engine encounters a bookmark while speaking.

EndInputStream 2

Identifica os eventos gerados quando um mecanismo sintetizador de fala encontra o final do fluxo de entrada durante a fala.Identifies events generated when a speech synthesize engine encounters the end of its input stream while speaking.

Phoneme 6

Identifica os eventos gerados quando um mecanismo sintetizador de fala conclui um fonema durante a fala.Identifies events generated when a speech synthesize engine completes a phoneme while speaking.

SentenceBoundary 7

Identifica os eventos gerados quando um mecanismo sintetizador de fala conclui uma frase durante a fala.Identifies events generated when a speech synthesize engine completes a sentence while speaking.

StartInputStream 1

Identifica os eventos gerados quando um mecanismo sintetizador de fala começa a falar um fluxo.Identifies events generated when a speech synthesize engine a begins speaking a stream.

Viseme 8

Identifica os eventos gerados quando um mecanismo sintetizador de fala conclui um visema durante a fala.Identifies events generated when a speech synthesize engine completes a viseme while speaking.

VoiceChange 3

Identifica os eventos gerados quando um mecanismo sintetizador de fala encontra uma alteração de voz durante a fala.Identifies events generated when a speech synthesize engine encounters a change of Voice while speaking.

WordBoundary 5

Identifica os eventos gerados quando um mecanismo sintetizador de fala conclui uma palavra durante a fala.Identifies events generated when a speech synthesize engine completes a word while speaking.

Exemplos

O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada TtsEngineSsmlherdada de e TextFragmentusando SpeechEventInfoas FragmentState TtsEventId classes,, e.The following example is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the TextFragment, SpeechEventInfo, FragmentState, and TtsEventId classes.

A implementação do TtsEngineSsml.Speak inclui as seguintes etapas:The implementation of TtsEngineSsml.Speak includes the following steps:

  1. Recebe uma matriz de TextFragment instâncias e cria uma nova matriz de TextFragment instâncias a ser passada para o Speak método em um mecanismo de síntese subjacente.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. Se a Action propriedade de cada TextFragment.State instância for igual a TtsEngineAction.Speak, o código fará o seguinte:If the Action property of each TextFragment.State instance is equal to TtsEngineAction.Speak, the code does the following:

    • Traduz o inglês americano para o inglês britânico no texto a ser falado.Translates American English to British English in the text to be spoken.

    • Se a ITtsEngineSite.EventInterest Propriedade fornecida para a implementação oferecer suporte WordBoundary ao tipo de evento SpeechEventInfo , uma instância será usada para criar um evento para gerar um medidor de progresso do sintetizador criado.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. Um mecanismo de renderização de fala é chamado com a TextFragment 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);

}

Comentários

Os mecanismos de síntese de fala personalizados definem os tipos de eventos enviados para a infraestrutura do sintetizador da plataforma de fala com o TtsEventId.Custom speech synthesis engines define the types of events submitted to the Speech platform synthesizer infrastructure with the TtsEventId.

A especificação é executada definindo a EventId propriedade das SpeechEventInfo instâncias passadas para AddEvents o membro da classe que implementa ITtsEngineSite a interface passada para Speak o método em um mecanismo de fala personalizado implementação 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.

A infraestrutura da plataforma de fala indica o tipo de eventos que está sendo manipulado por meio ITtsEngineSite da EventInterest Propriedade no passado para a implementação de fala.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.

O valor de EventInterest é um bitmask, em que os membros TtsEventId de definem o local do bit correspondente ao 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 exemplo, WordBoundary tem um valor de cinco (5), o que significa que o quinto bit no valor EventInterest retornado por indica se o site oferece suporte ao 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.

Aplica-se a