TtsEventId Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menghitung jenis peristiwa sintesis ucapan.
public enum class TtsEventId
public enum TtsEventId
type TtsEventId =
Public Enum TtsEventId
- Warisan
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:
Menerima array TextFragment instans dan membuat array TextFragment instans baru untuk diteruskan ke
Speakmetode pada mesin sintesis yang mendasar.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
WordBoundarydigunakan untuk membuat peristiwa untuk mendorong pengukur kemajuan synthesizer dibuat.
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.