EventParameterType 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 penunjuk data yang diteruskan ke peristiwa sintesis ucapan.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- Warisan
Bidang
| Nama | Nilai | Deskripsi |
|---|---|---|
| Undefined | 0 | Menunjukkan bahwa |
| Token | 1 | Menunjukkan bahwa |
| Object | 2 | Saat ini tidak didukung. |
| Pointer | 3 | Saat ini tidak didukung. |
| String | 4 | Menunjukkan bahwa |
Contoh
Contoh berikut adalah bagian dari implementasi sintesis ucapan kustom yang mewarisi dari TtsEngineSsml, dan menggunakan penggunaan TextFragment, , SpeechEventInfoFragmentState, dan TtsEventId.
Implementasi Speak
Menerima array TextFragment instans dan membuat array TextFragment instans baru untuk diteruskan ke
Speakmetode pada mesin sintesis yang mendasar.TtsEngineAction Jika nilai enumerasi dengan ditemukan dari Action properti pada FragmentState yang dikembalikan oleh State properti dari setiap TextFragment instans adalah Speak, implementasinya
Menerjemahkan Americanisme ke Britishism dalam teks yang akan diucapkan.
EventInterest Jika properti pada ITtsEngineSite antarmuka yang disediakan untuk implementasi mendukung WordBoundary jenis peristiwa, SpeechEventInfo instans digunakan untuk membuat peristiwa untuk mendorong pengukur kemajuan synthesizer dibuat.
Parameter pada SpeechEventInfo, termasuk EventParameterType nilai anggota yang dikembalikan oleh ParameterType, digunakan untuk mencatat peristiwa yang dihasilkan melalui
LogSpeechEventmetode .
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));
LogSpeechEvent(spEvent.EventId,
spEvent.ParameterType,
spEvent.Param1,
spEvent.Param2);
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
Enumerasi EventParameterType digunakan saat membuat SpeechEventInfo objek. Anggota EventParameterType enumerasi yang diteruskan sebagai parameterType argumen ke konstruktor untuk SpeechEventInfo menentukan bagaimana param2 argumen konstruktor (yang harus berupa IntPtr) ditafsirkan.
Pilihan EventParameterType ditentukan oleh jenis peristiwa yang diminta, seperti yang ditentukan oleh anggota System.Speech.Synthesis.TtsEngine.TtsEventId.
Untuk informasi terperinci tentang cara penggunaan EventParameterType, lihat dokumentasi untuk EventId
Nota
Saat ini, instans mesin ucapan sintetis terkelola yang ditulis menggunakan anggota System.Speech.Synthesis namespace layanan tidak dapat mengubah sumber daya setelah konstruksi.