TtsEngineAction Sabit listesi

Tanım

Belirli TextFragmentbir işlemede gerçekleştirilecek Konuşma Sentezi Biçimlendirme Dili (SSML) eylemini belirtir.

public enum class TtsEngineAction
public enum TtsEngineAction
type TtsEngineAction = 
Public Enum TtsEngineAction
Devralma
TtsEngineAction

Alanlar

Bookmark 3

TextFragment Bunun bir yer işaretinin içeriği olarak kullanılacağını gösterir. SSML belirtimindeki <mark> XML etiketine karşılık gelir.

ParseUnknownTag 7

SSML girişinden hiçbir eylem belirlenediğini gösterir. Bir sentez altyapısının takdirine bağlı olarak tarafından yorumlanabilir veya yoksayılabilir bu giriş. İlişkili TextFragment , SSML standardının parçası olmayan bilinmeyen bir XML etiketidir.

Pronounce 2

Giriş TextFragment metninin fone olarak yorumlanması isteğinde bulunur. Tam söyleniş, örneklerde TextFragment özelliği tarafından döndürülen nesnenin State FragmentState üyesi tarafından Phoneme belirtilir. SSML belirtimindeki <Phoneme> XML etiketine karşılık gelir.

Silence 1

bir TextFragment öğesinin konuşma olarak işlenecek metin içermediğini gösterir. Sessizlik süresi, örneklerde TextFragment özelliği tarafından döndürülen nesnenin State FragmentState özelliği tarafından Duration belirtilir. SSML belirtimindeki <Silence> XML etiketine karşılık gelir.

Speak 0

İlişkilinin TextFragment işlenmesi ve konuşulması isteği. Bu, için TextFragmentvarsayılan değerdir. SSML belirtimindeki <speak> XML etiketine karşılık gelir.

SpellOut 4

özelliği aracılığıyla TextToSpeak tarafından TextFragment sağlanan metin değerlerinin tek tek karakterler olarak sentezlenmesini gösterir. Bu işleme, boşluk dışında noktalama işaretlerini ve alfasayısal metni içerir. Örneğin, ilişkili metin parçası "word!" "w o r d ünlem işareti" halinde sentezlenmelidir.

StartParagraph 6

Paragrafın durumunu gösterir. SSML belirtimindeki <p> XML etiketine karşılık gelir.

StartSentence 5

Cümlenin başlangıcını gösterir. SSML belirtimindeki <s> XML etiketine karşılık gelir.

Örnekler

Aşağıdaki örnek, uygulamasından TtsEngineSsmldevralan ve , FragmentStateve kullanımını kullanan özel konuşma sentezi uygulamasının TextFragmentbir parçasıdır.TtsEventId

Uygulamasının Speak

  1. Bir TextFragment dizi örneği alır ve temel alınan sentez altyapısında yöntemine Speak geçirilecek yeni bir örnek dizisi TextFragment oluşturur.

  2. TtsEngineAction Her TextFragment örneğin özelliği tarafından State döndürülen özelliğinden Action FragmentState bulunan numaralandırma değeri Speak ise, uygulama

    • Konuşulacak metinde Amerikancılığı İngilizlere çevirir.

    • EventInterest Uygulamaya sağlanan arabirimdeki ITtsEngineSite özelliği olay türünü destekliyorsaTtsEventId.WordBoundary, bir synthesizer ilerleme ölçümünü yönlendiren bir olay oluşturulur.

  3. Ardından değiştirilen diziyle bir konuşma işleme altyapısı çağrılır TextFragment .

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);

}

Açıklamalar

TtsEngineAction , bir TextFragmenthizmet verme isteklerini temsil eder. Eylemler SSML belirtimindeki öğelere yakından karşılık gelir ve özelliği tarafından döndürülen metne TextToSpeak uygulanır TextFragment.

TtsEngineAction ile TextFragment ilişkili değer özelliği tarafından State döndürülür.

özelliği tarafından döndürülen değerin TtsEngineAction State işlenmesi, öğesinden TtsEngineSsmltüretilen bir sınıfta yönteminin Speak uygulanmasını bir konuşma sentezler tarafından işlenir.

Şunlara uygulanır