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

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.

Bookmark 4

Konuşma sentezi altyapısı konuşma sırasında yer işaretiyle karşılaştığı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.

Phoneme 6

Konuşma sentez altyapısı konuşma sırasında bir foneyi 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.

StartInputStream 1

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

Viseme 8

Konuşma sentez altyapısı konuşma sırasında bir vizemeyi tamamladığı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.

WordBoundary 5

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

Örnekler

Aşağıdaki örnek, ' den TtsEngineSsmldevralan ve , , SpeechEventInfoFragmentStateve TtsEventId 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 yöntemine Speak 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ünü yönlendirmek için bir olay oluşturmak için bir örnek kullanılır.

  3. Daha sonra 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

Ö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 ITtsEngineSite aracılığıyla EventInterest şu anda işlemekte olduğu olayların türünü gösterir.

değeri EventInterest , üyelerinin TtsEventId olay türüne karşılık gelen bitin konumunu tanımladığı bir bit maskesidir. Ö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