TtsEngineAction TtsEngineAction TtsEngineAction TtsEngineAction Enum

Definición

Especifica la acción de lenguaje de marcado de síntesis de voz (SSML) que se va a tomar para presentar un TextFragment dado.Specifies the Speech Synthesis Markup Language (SSML) action to be taken in rendering a given TextFragment.

public enum class TtsEngineAction
public enum TtsEngineAction
type TtsEngineAction = 
Public Enum TtsEngineAction
Herencia
TtsEngineActionTtsEngineActionTtsEngineActionTtsEngineAction

Campos

Bookmark Bookmark Bookmark Bookmark 3

Indica que TextFragment se va a utilizar como contenido de un marcador.Indicates that TextFragment is to be used as the contents of a bookmark. Corresponde a la etiqueta XML <mark> en la especificación de SSML.It corresponds to the <mark> XML tag in the SSML specification.

ParseUnknownTag ParseUnknownTag ParseUnknownTag ParseUnknownTag 7

Indica que no se ha determinado ninguna acción de entrada de SSML.Indicates that no action has been determined from SSML input. Esta entrada puede ser interpretada u omitida a criterio de un motor de síntesis.This input that may be interpreted or ignored by at the discretion of a synthesis engine. El asociado TextFragment es una etiqueta XML desconocida que no forma parte del estándar SSML.The associated TextFragment is an unknown XML tag not part of the SSML standard.

Pronounce Pronounce Pronounce Pronounce 2

Solicita que el texto TextFragment de entrada se interprete como fonemas.Requests that input TextFragment text be interpreted as phonemes. La pronunciación exacta se especifica mediante el miembro Phoneme del objeto FragmentState devuelto por la propiedad State en las instancias de TextFragment.Exact pronunciation is specified by the Phoneme member of the FragmentState object returned by the State property on TextFragment instances. Corresponde a la etiqueta XML <Phoneme> en la especificación de SSML.It corresponds to the <Phoneme> XML tag in the SSML specification.

Silence Silence Silence Silence 1

Indica que un TextFragment no contiene texto para presentarse como voz.Indicates that a TextFragment contains no text to be rendered as speech. La duración del silencio se especifica mediante la propiedad Duration del objeto FragmentState devuelto por la propiedad State en las instancias de TextFragment.Duration of the silence is specified by the Duration property of the the FragmentState object returned by the State property on TextFragment instances. Corresponde a la etiqueta XML <Silence> en la especificación de SSML.It corresponds to the <Silence> XML tag in the SSML specification.

Speak Speak Speak Speak 0

Solicita que el objeto TextFragment asociado se procese y se hable.Requests that the associated TextFragment should be processed and spoken. Este es el valor predeterminado de TextFragment.This is the default value for a TextFragment. Corresponde a la etiqueta XML <speak> en la especificación de SSML.It corresponds to the <speak> XML tag in the SSML specification.

SpellOut SpellOut SpellOut SpellOut 4

Indica que los valores de texto proporcionados por TextFragment a través de su propiedad TextToSpeak se van a sintetizar como caracteres individuales.Indicates that text values provided by a TextFragment through its TextToSpeak property are to be synthesize as individual characters. Esta representación incluye signos de puntuación, distintos de espacios en blanco, así como texto alfanumérico.This rendering includes punctuation, other than white space, as well as alphanumeric text. Por ejemplo, el fragmento de texto asociado "¡palabra!"For example, the associated text fragment "word!" debe sintetizarse en "signo de exclamación de apertura p a l a b r a signo de exclamación de cierre".should be synthesized into "w o r d exclamation point".

StartParagraph StartParagraph StartParagraph StartParagraph 6

Indica el estado del párrafo.Indicates state of paragraph. Corresponde a la etiqueta XML <p> en la especificación de SSML.It corresponds to the <p> XML tag in the SSML specification.

StartSentence StartSentence StartSentence StartSentence 5

Indica el inicio de la frase.Indicates start of sentence. Corresponde a la etiqueta XML <s> en la especificación de SSML.It corresponds to the <s> XML tag in the SSML specification.

Ejemplos

El siguiente ejemplo forma parte de una implementación de síntesis de voz personalizada que TtsEngineSsmlhereda de y usa el uso TextFragmentde FragmentState, y.TtsEventIdThe following example is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, FragmentState, and TtsEventId

La implementación deSpeakThe implementation of Speak

  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 el TtsEngineAction valor de enumeración que se Action encuentra en la FragmentState propiedad en la State devuelta por TextFragment la propiedad de cada instancia es Speak, la implementaciónIf the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • Traduce el Americanism a Britishisms en el texto que se va a hablar.Translates Americanism to Britishisms in the text to be spoken.

    • Si la EventInterest propiedad de la ITtsEngineSite interfaz proporcionada a la implementación admite el TtsEventId.WordBoundary tipo de evento, se crea un evento para impulsar un medidor de progreso de sintetizador.If the EventInterest property on the ITtsEngineSite interface provided to the implementation support the TtsEventId.WordBoundary event type, 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

TtsEngineActionrepresenta las solicitudes de mantenimiento de TextFragmentun.TtsEngineAction represents requests for servicing a TextFragment. Las acciones se corresponden estrechamente con los elementos de la especificación de SSML y se implementan en el TextToSpeak texto devuelto TextFragmentpor la propiedad en.The actions correspond closely to elements in the SSML specification and are implemented on the text returned by the TextToSpeak property on a TextFragment.

La TtsEngineAction propiedadState devuelve el valor TextFragment asociado a un objeto.The TtsEngineAction value associated with a TextFragment is returned by the State property.

El procesamiento del TtsEngineAction valor devuelto por State la propiedad se controla mediante una implementación de Speak síntesis de voz del método en una clase derivada TtsEngineSsmlde.Processing of the TtsEngineAction value returned by the State property is handled by a speech synthesizes implementation of the Speak method on a class derived from TtsEngineSsml.

Se aplica a