EventParameterType Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Konuşma sentezi olaylarına geçirilen veri işaretçisi türlerini numaralandırır.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- Devralma
Alanlar
| Name | Değer | Description |
|---|---|---|
| Undefined | 0 | bağımsız değişkeninin |
| Token | 1 | bağımsız değişkeninin |
| Object | 2 | Şu anda desteklenmiyor. |
| Pointer | 3 | Şu anda desteklenmiyor. |
| String | 4 | bağımsız değişkeninin |
Örnekler
Aşağıdaki örnek, öğesinden TtsEngineSsmldevralınan ve , , TextFragmentSpeechEventInfove FragmentStatekullanımını kullanan özel konuşma sentezi uygulamasının TtsEventIdbir parçasıdır.
Uygulamasının Speak
Bir örnek dizisi TextFragment alır ve temel alınan sentez altyapısında TextFragment yöntemine geçirilecek yeni bir örnek dizisi
Speakoluşturur.TtsEngineAction Her Action örneğin özelliği tarafından FragmentState döndürülen özelliğinde StateTextFragment bulunan numaralandırma değeri iseSpeak, uygulama
Konuşulacak metinde Amerikancılığı İngilizliklere çevirir.
EventInterest Uygulamaya sağlanan arabirimlerdeki özelliği ITtsEngineSite olay türünü destekliyorsaWordBoundary, bir SpeechEventInfo sentezleyici ilerleme ölçümünü yönlendirmek için olay oluşturmak için bir örnek kullanılır.
tarafından döndürülen SpeechEventInfoüye değeri de dahil olmak üzere EventParameterType üzerindeki ParameterTypeparametreleri yöntemi aracılığıyla
LogSpeechEventoluşturulan olayı günlüğe kaydetmek için kullanılır.
Daha sonra değiştirilen dizi ile 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));
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);
}
Açıklamalar
Sabit EventParameterType listesi, bir SpeechEventInfo nesne oluşturulurken kullanılır.
EventParameterType için oluşturucuya parameterTypeSpeechEventInfo bağımsız değişken olarak geçirilen bir numaralandırma üyesi, oluşturucunun bağımsız değişkeninin (bir param2olması gerekir) nasıl IntPtr yorumlanması gerektiğini belirtir.
seçeneği, öğesinin EventParameterType bir üyesi tarafından belirtildiği gibi istenen olay türüne System.Speech.Synthesis.TtsEngine.TtsEventIdgöre belirlenir.
kullanma EventParameterTypehakkında ayrıntılı bilgi için belgelerine bakın EventId
Note
Şu anda, ad alanının üyeleri kullanılarak yazılmış yönetilen yapay konuşma altyapılarının System.Speech.Synthesis örnekleri, oluşturmadan sonra kaynakları değiştiremez.