Udostępnij za pośrednictwem


TtsEventId Wyliczenie

Definicja

Wylicza typy zdarzeń syntezy mowy.

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

Pola

AudioLevel 9

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy zmianę poziomu dźwięku podczas mówienia.

Bookmark 4

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy napotyka zakładkę podczas mówienia.

EndInputStream 2

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy napotyka koniec strumienia wejściowego podczas mówienia.

Phoneme 6

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy fonem podczas mówienia.

SentenceBoundary 7

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy zdanie podczas mówienia.

StartInputStream 1

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy zaczyna mówić strumieniem.

Viseme 8

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy viseme podczas mówienia.

VoiceChange 3

Identyfikuje zdarzenia generowane, gdy aparat syntezowania mowy napotyka zmianę funkcji Voice podczas mówienia.

WordBoundary 5

Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy słowo podczas mówienia.

Przykłady

Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczonej z TtsEngineSsmlklasy , i przy użyciu TextFragmentklas , SpeechEventInfo, FragmentStatei TtsEventId .

Implementacja programu TtsEngineSsml.Speak obejmuje następujące kroki:

  1. Odbiera tablicę TextFragment wystąpień i tworzy nową tablicę TextFragment wystąpień, która ma zostać przekazana do Speak metody w podstawowym aucie syntezy.

  2. Action Jeśli właściwość każdego TextFragment.State wystąpienia jest równa TtsEngineAction.Speak, kod wykonuje następujące czynności:

    • Tłumaczy język angielski amerykański na brytyjski angielski w tekście, który ma być używany.

    • Jeśli właściwość dostarczona ITtsEngineSite.EventInterest do implementacji obsługuje WordBoundary typ zdarzenia, SpeechEventInfo wystąpienie jest używane do utworzenia zdarzenia w celu napędzania miernika postępu syntezatora.

  3. Aparat renderowania mowy jest następnie wywoływany za pomocą zmodyfikowanej TextFragment tablicy.

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

}

Uwagi

Niestandardowe aparaty syntezy mowy definiują typy zdarzeń przesyłanych do infrastruktury syntezatora platformy mowa za pomocą elementu TtsEventId.

Specyfikacja jest wykonywana przez ustawienie EventId właściwości SpeechEventInfo wystąpień przekazywanych do AddEvents elementu członkowskiego klasy implementowania ITtsEngineSite interfejsu przekazywanego do Speak metody w implementacji aparatu mowy niestandardowej .TtsEngineSsml

Infrastruktura platformy rozpoznawania mowy wskazuje typ zdarzeń, które obecnie obsługuje za pośrednictwem EventInterest właściwości przekazanej ITtsEngineSite do implementacji mowy.

Wartość to maska bitów EventInterest , w której elementy członkowskie TtsEventId definiują lokalizację bitu odpowiadającego typowi zdarzenia. Na przykład element WordBoundary ma wartość pięciu (5), co oznacza, że piąty bit w wartości zwracanej przez EventInterest element wskazuje, czy witryna obsługuje typ zdarzenia.

Dotyczy