Aracılığıyla paylaş


TtsEventId Sabit listesi

Tanım

Konuşma sentezi olaylarının türlerini numaralandırır.

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

Alanlar

Name Değer Description
StartInputStream 1

Konuşma sentez altyapısı bir akış konuşmaya başladığında oluşturulan olayları tanımlar.

EndInputStream 2

Konuşma sentez altyapısı konuşma sırasında giriş akışının sonuyla karşılaştığında oluşturulan olayları tanımlar.

VoiceChange 3

Konuşma sentez altyapısı konuşma sırasında Ses değişikliğiyle karşılaştığında oluşturulan olayları tanımlar.

Bookmark 4

Konuşma sentez altyapısı konuşma sırasında yer işaretiyle karşılaştığında oluşturulan olayları tanımlar.

WordBoundary 5

Konuşma sentez altyapısı konuşma sırasında bir sözcüğü tamamladığında oluşturulan olayları tanımlar.

Phoneme 6

Konuşma sentez altyapısı konuşma sırasında bir telefon bağlamayı tamamladığında oluşturulan olayları tanımlar.

SentenceBoundary 7

Konuşma sentez altyapısı konuşma sırasında bir cümleyi tamamladığında oluşturulan olayları tanımlar.

Viseme 8

Konuşma sentez altyapısı konuşma sırasında bir vizeme tamamladığında oluşturulan olayları tanımlar.

AudioLevel 9

Konuşma sentez altyapısı konuşma sırasında ses düzeyi değişikliğini tamamladığında oluşturulan olayları tanımlar.

Örnekler

Aşağıdaki örnek, öğesinden TtsEngineSsmldevralınan ve , SpeechEventInfo, FragmentStateTtsEventId ve sınıflarını kullanan özel konuşma sentezi uygulamasının TextFragmentbir parçasıdır.

uygulaması TtsEngineSsml.Speak aşağıdaki adımları içerir:

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

  2. Action Her TextFragment.State örneğin özelliği değerine TtsEngineAction.Speakeşitse kod aşağıdakileri yapar:

    • Konuşulacak metinde Amerikan İngilizcesini İngiliz İngilizcesine çevirir.

    • ITtsEngineSite.EventInterest Uygulamaya sağlanan özellik olay türünü destekliyorsaWordBoundary, bir SpeechEventInfo sentezleyici ilerleme ölçümü oluşturmak için bir olay oluşturmak için bir örnek kullanılır.

  3. Daha sonra değiştirilen dizi ile 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

Özel konuşma sentezi altyapıları ile TtsEventIdKonuşma platformu sentezleyici altyapısına gönderilen olay türlerini tanımlar.

Belirtim, özel konuşma altyapısının uygulamasında yöntemine AddEvents geçirilen arabirimi uygulayan ITtsEngineSite sınıfın üyesine geçirilen örneklerin SpeakTtsEngineSsmlözelliği ayarlanarak EventId gerçekleştirilir.SpeechEventInfo

Konuşma platformu altyapısı, konuşma uygulamasına geçirilen özelliği aracılığıyla EventInterest şu anda işlemekte ITtsEngineSite olduğu olayların türünü gösterir.

değeri EventInterest bit maskesidir ve burada üyeleri TtsEventId olay türüne karşılık gelen bitin konumunu tanımlar. Örneğin, WordBoundary beş (5) değerine sahiptir; yani tarafından EventInterest döndürülen değerdeki beşinci bit, sitenin olay türünü desteklediğini gösterir.

Şunlara uygulanır