TtsEventId Enum

Definisi

Menghitung jenis peristiwa sintesis ucapan.

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

Bidang

Nama Nilai Deskripsi
StartInputStream 1

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan mulai berbicara aliran.

EndInputStream 2

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menemukan akhir aliran inputnya saat berbicara.

VoiceChange 3

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan mengalami perubahan Voice saat berbicara.

Bookmark 4

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menemukan marka buku saat berbicara.

WordBoundary 5

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menyelesaikan kata saat berbicara.

Phoneme 6

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menyelesaikan fonem saat berbicara.

SentenceBoundary 7

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menyelesaikan kalimat saat berbicara.

Viseme 8

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menyelesaikan viseme saat berbicara.

AudioLevel 9

Mengidentifikasi peristiwa yang dihasilkan saat mesin sintesis ucapan menyelesaikan perubahan tingkat audio saat berbicara.

Contoh

Contoh berikut adalah bagian dari implementasi sintesis ucapan kustom yang mewarisi dari TtsEngineSsml, dan menggunakan TextFragmentkelas , , SpeechEventInfoFragmentState, dan TtsEventId .

Implementasi meliputi TtsEngineSsml.Speak langkah-langkah berikut:

  1. Menerima array TextFragment instans dan membuat array TextFragment instans baru untuk diteruskan ke Speak metode pada mesin sintesis yang mendasar.

  2. Action Jika properti setiap TextFragment.State instans sama dengan TtsEngineAction.Speak, kode melakukan hal berikut:

    • Menerjemahkan bahasa Inggris Amerika ke bahasa Inggris Inggris dalam teks yang akan diucapkan.

    • ITtsEngineSite.EventInterest Jika properti yang disediakan untuk implementasi mendukung jenis peristiwa, SpeechEventInfo instans WordBoundary digunakan untuk membuat peristiwa untuk mendorong pengukur kemajuan synthesizer dibuat.

  3. Mesin penyajian ucapan kemudian dipanggil dengan array yang dimodifikasi 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);

}

Keterangan

Mesin sintesis ucapan kustom menentukan jenis peristiwa yang dikirimkan ke infrastruktur synthesizer platform Ucapan dengan TtsEventId.

Spesifikasi dilakukan dengan mengatur EventId properti SpeechEventInfo instans yang diteruskan ke AddEvents anggota kelas yang mengimplementasikan antarmuka yang ITtsEngineSite diteruskan ke Speak metode pada implementasi mesin ucapan kustom dari TtsEngineSsml.

Infrastruktur platform Ucapan menunjukkan jenis peristiwa yang saat ini ditanganinya melalui EventInterest properti pada yang ITtsEngineSite diteruskan ke implementasi berbicara.

Nilai EventInterest adalah bitmask, di mana anggota TtsEventId menentukan lokasi bit yang sesuai dengan jenis peristiwa. Misalnya, WordBoundary memiliki nilai lima (5), yang berarti bit kelima dalam nilai yang dikembalikan oleh EventInterest menunjukkan apakah situs mendukung jenis peristiwa.

Berlaku untuk