TtsEventId TtsEventId TtsEventId TtsEventId Enum

Definizione

Enumera i tipi di eventi di sintesi vocale.Enumerates types of speech synthesis events.

public enum class TtsEventId
public enum TtsEventId
type TtsEventId = 
Public Enum TtsEventId
Ereditarietà

Campi

AudioLevel AudioLevel AudioLevel AudioLevel 9

Identifica gli eventi generati quando un motore di sintesi vocale completa una modifica del livello dell'audio durante la pronuncia.Identifies events generated when a speech synthesize engine completes an audio level change while speaking.

Bookmark Bookmark Bookmark Bookmark 4

Identifica gli eventi generati quando un motore di sintesi vocale rileva un segnalibro durante la pronuncia.Identifies events generated when a speech synthesize engine encounters a bookmark while speaking.

EndInputStream EndInputStream EndInputStream EndInputStream 2

Identifica gli eventi generati quando un motore di sintesi vocale rileva la fine del relativo flusso di input durante la pronuncia.Identifies events generated when a speech synthesize engine encounters the end of its input stream while speaking.

Phoneme Phoneme Phoneme Phoneme 6

Identifica gli eventi generati quando un motore di sintesi vocale completa un fonema durante la pronuncia.Identifies events generated when a speech synthesize engine completes a phoneme while speaking.

SentenceBoundary SentenceBoundary SentenceBoundary SentenceBoundary 7

Identifica gli eventi generati quando un motore di sintesi vocale completa una frase durante la pronuncia.Identifies events generated when a speech synthesize engine completes a sentence while speaking.

StartInputStream StartInputStream StartInputStream StartInputStream 1

Identifica gli eventi generati quando un motore di sintesi vocale inizia a pronunciare un flusso.Identifies events generated when a speech synthesize engine a begins speaking a stream.

Viseme Viseme Viseme Viseme 8

Identifica gli eventi generati quando un motore di sintesi vocale completa un viseme durante la pronuncia.Identifies events generated when a speech synthesize engine completes a viseme while speaking.

VoiceChange VoiceChange VoiceChange VoiceChange 3

Identifica gli eventi generati quando un motore di sintesi vocale rileva una modifica della voce durante la pronuncia.Identifies events generated when a speech synthesize engine encounters a change of Voice while speaking.

WordBoundary WordBoundary WordBoundary WordBoundary 5

Identifica gli eventi generati quando un motore di sintesi vocale completa una parola durante la pronuncia.Identifies events generated when a speech synthesize engine completes a word while speaking.

Esempi

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita TtsEngineSsmlda e usando le TextFragmentclassi SpeechEventInfo, FragmentState, e TtsEventId .The following example is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the TextFragment, SpeechEventInfo, FragmentState, and TtsEventId classes.

L'implementazione di TtsEngineSsml.Speak include i passaggi seguenti:The implementation of TtsEngineSsml.Speak includes the following steps:

  1. Riceve una matrice di TextFragment istanze e crea una nuova matrice di TextFragment istanze Speak da passare al metodo su un motore di sintesi sottostante.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 la Action proprietà di ogni TextFragment.State istanza è uguale a TtsEngineAction.Speak, il codice esegue le operazioni seguenti:If the Action property of each TextFragment.State instance is equal to TtsEngineAction.Speak, the code does the following:

    • Converte la lingua inglese (Stati Uniti) in inglese britannico nel testo da pronunciare.Translates American English to British English in the text to be spoken.

    • Se la ITtsEngineSite.EventInterest proprietà fornita all'implementazione supporta il WordBoundary tipo di evento, viene SpeechEventInfo utilizzata un'istanza di per creare un evento per la creazione di un indicatore di stato del sintetizzatore.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. Viene quindi chiamato un motore di rendering vocale con la TextFragment matrice modificata.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);

}

Commenti

I motori di sintesi vocale personalizzati definiscono i tipi di eventi inviati all'infrastruttura del sintetizzatore della piattaforma TtsEventIdvocale con.Custom speech synthesis engines define the types of events submitted to the Speech platform synthesizer infrastructure with the TtsEventId.

La specifica viene eseguita impostando EventId la proprietà SpeechEventInfo delle istanze passate al AddEvents membro della classe che implementa l' ITtsEngineSite interfaccia passata al Speak metodo su un motore di riconoscimento vocale personalizzato implementazione di 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.

L'infrastruttura della piattaforma vocale indica il tipo di eventi che sta attualmente gestendo EventInterest tramite la proprietà ITtsEngineSite nell'oggetto passato all'implementazione 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.

Il valore di EventInterest è una maschera di bit, in cui TtsEventId i membri di definiscono la posizione del bit corrispondente al tipo di evento.The value of EventInterest is a bitmask, where the members of TtsEventId define the location of the bit corresponding to the event type. Ad esempio, WordBoundary ha un valore pari a cinque (5), ovvero il quinto bit nel valore restituito da EventInterest indica se il sito supporta il tipo di 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.

Si applica a