TtsEngineAction TtsEngineAction TtsEngineAction TtsEngineAction Enum

Definizione

Specifica l'azione del linguaggio di markup sintesi della voce (SSML) da intraprendere durante il rendering di un dato oggetto TextFragment.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
Ereditarietà
TtsEngineActionTtsEngineActionTtsEngineActionTtsEngineAction

Campi

Bookmark Bookmark Bookmark Bookmark 3

Indica che l'oggetto TextFragment deve essere utilizzato come contenuto di un segnalibro.Indicates that TextFragment is to be used as the contents of a bookmark. Corrisponde al tag XML <mark> nella specifica SSML.It corresponds to the <mark> XML tag in the SSML specification.

ParseUnknownTag ParseUnknownTag ParseUnknownTag ParseUnknownTag 7

Indica che non è stata determinata alcuna azione dall'input di SSML.Indicates that no action has been determined from SSML input. Questo input può essere interpretato o ignorato a discrezione di un motore di sintesi.This input that may be interpreted or ignored by at the discretion of a synthesis engine. L'oggetto TextFragment associato è un tag XML sconosciuto che non fa parte dello standard SSML.The associated TextFragment is an unknown XML tag not part of the SSML standard.

Pronounce Pronounce Pronounce Pronounce 2

Richiede che il testo TextFragment di input venga interpretato come fonemi.Requests that input TextFragment text be interpreted as phonemes. La pronuncia esatta è specificata dal membro Phoneme dell'oggetto FragmentState restituito dalla proprietà State nelle istanze di TextFragment.Exact pronunciation is specified by the Phoneme member of the FragmentState object returned by the State property on TextFragment instances. Corrisponde al tag XML <Phoneme> nella specifica SSML.It corresponds to the <Phoneme> XML tag in the SSML specification.

Silence Silence Silence Silence 1

Indica che un oggetto TextFragment non contiene alcun testo di cui eseguire il rendering come input vocale.Indicates that a TextFragment contains no text to be rendered as speech. La durata del silenzio viene specificata dalla proprietà Duration dell'oggetto FragmentState restituito dalla proprietà State nelle istanze di TextFragment.Duration of the silence is specified by the Duration property of the the FragmentState object returned by the State property on TextFragment instances. Corrisponde al tag XML <Silence> nella specifica SSML.It corresponds to the <Silence> XML tag in the SSML specification.

Speak Speak Speak Speak 0

Richiede che l'oggetto TextFragment associato venga elaborato e pronunciato.Requests that the associated TextFragment should be processed and spoken. Questo è il valore predefinito per un TextFragment.This is the default value for a TextFragment. Corrisponde al tag XML <speak> nella specifica SSML.It corresponds to the <speak> XML tag in the SSML specification.

SpellOut SpellOut SpellOut SpellOut 4

Indica che i valori di testo forniti da un oggetto TextFragment tramite la relativa proprietà TextToSpeak devono essere sintetizzati come singoli caratteri.Indicates that text values provided by a TextFragment through its TextToSpeak property are to be synthesize as individual characters. Il rendering include segni di punteggiatura, diversi dallo spazio vuoto, nonché testo alfanumerico.This rendering includes punctuation, other than white space, as well as alphanumeric text. Ad esempio, il frammento di testo associato "parola!"For example, the associated text fragment "word!" deve essere sintetizzato in "p a r o l a punto esclamativo".should be synthesized into "w o r d exclamation point".

StartParagraph StartParagraph StartParagraph StartParagraph 6

Indica lo stato del paragrafo.Indicates state of paragraph. Corrisponde al tag XML <p> nella specifica SSML.It corresponds to the <p> XML tag in the SSML specification.

StartSentence StartSentence StartSentence StartSentence 5

Indica l'inizio della frase.Indicates start of sentence. Corrisponde al tag XML <s> nella specifica SSML.It corresponds to the <s> XML tag in the SSML specification.

Esempi

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita TtsEngineSsmlda e usando l'uso di TextFragment, FragmentStateeTtsEventIdThe following example is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, FragmentState, and TtsEventId

Implementazione diSpeakThe implementation of Speak

  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 il TtsEngineAction valore di enumerazione trovato Action dalla proprietà nell'oggetto FragmentState restituito dalla State proprietà di ogni TextFragment istanza è Speak, l'implementazione diIf 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

    • Converte l'americano in Britishisms nel testo da pronunciare.Translates Americanism to Britishisms in the text to be spoken.

    • Se la EventInterest proprietà ITtsEngineSite nell'interfaccia fornita all'implementazione supporta il TtsEventId.WordBoundary tipo di evento, viene creato un evento per guidare un indicatore di stato del sintetizzatore.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. 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

TtsEngineActionrappresenta le richieste per la manutenzione TextFragmentdi un oggetto.TtsEngineAction represents requests for servicing a TextFragment. Le azioni corrispondono strettamente agli elementi nella specifica SSML e vengono implementate sul testo restituito dalla TextToSpeak proprietà in un oggetto. TextFragmentThe actions correspond closely to elements in the SSML specification and are implemented on the text returned by the TextToSpeak property on a TextFragment.

Il TtsEngineAction valore associato a un TextFragment oggetto viene restituito dalla State proprietà.The TtsEngineAction value associated with a TextFragment is returned by the State property.

L'elaborazione del TtsEngineAction valore restituito State dalla proprietà viene gestita da un riconoscimento vocale che sintetizza l' Speak implementazione del metodo in una classe derivata da TtsEngineSsml.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.

Si applica a