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 , , SpeechEventInfoFragmentStateve TtsEventIdkullanımını kullanan özel konuşma sentezi uygulamasının TextFragmentbir parçasıdır.
Uygulamasının Speak
Bir örnek dizisi TextFragment alır ve temel alınan sentez altyapısında
Speakyöntemine geçirilecek yeni bir örnek dizisi TextFragment oluşturur.TtsEngineAction Her TextFragment örneğin özelliği tarafından State döndürülen özelliğinde FragmentStateAction 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 ParameterTypeüye değeri de dahil olmak üzere EventParameterType üzerindeki SpeechEventInfoparametreleri 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 IntPtrolması gerekir) nasıl param2 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
Uyarı
Ş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.