SpeechEventInfo.Param2 Özellik
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.
System.IntPtr
param2
Geçerli örneğinin istemek için kullanıldığı bir olay oluşturmak üzere konuşma platformuna geçirilecek nesneye başvuran örneği (oluşturucuda) alır ve ayarlar SpeechEventInfo .
public:
property IntPtr Param2 { IntPtr get(); };
public IntPtr Param2 { get; }
member this.Param2 : nativeint
Public ReadOnly Property Param2 As IntPtr
Özellik Değeri
-
IntPtr
nativeint
System.IntPtr
Geçerli örneği tarafından belirtilen olay oluşturulduğunda, konuşma platformuna geçirilecek nesneye başvuru gönderir SpeechEventInfo .
Örnekler
Aşağıdaki örnek, ' den devralan özel bir konuşma sen, uygulamasının bir parçasıdır TtsEngineSsml ve,, TextFragment SpeechEventInfo FragmentState ve kullanımını kullanarak TtsEventId
Uygulamasının Speak
Örnek dizisini alır TextFragment ve TextFragment
Speak
temel alınan bir sensıs altyapısında yönteme geçirilecek yeni bir örnek dizisi oluşturur.TtsEngineAction Action FragmentState Her örneğin özelliği tarafından döndürülen özellikten bulunan bir numaralandırma değeri, State TextFragment Speak uygulama
Americanism, konuşulan metinde Britishisms 'e çevirir.
EventInterest ITtsEngineSite Uygulamaya sunulan arayüzlerde bulunan özellik WordBoundary olay türünü destekliyorsa, SpeechEventInfo bir Birleştiricisi oluşturmak için bir olay oluşturmak için bir örnek kullanılır.
Dahil parametreler, SpeechEventInfo Param2 yöntemi aracılığıyla oluşturulan olayı günlüğe kaydetmek için kullanılır
LogSpeechEvent
.
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
Özelliğinin başvurusu üzerindeki Gereksinimler System.IntPtr
Param2 SpeechEventInfo , öğesinin değerlerine ve özelliklerine göre benzersiz şekilde belirlenir EventId ParameterType SpeechEventInfo .
Kullanımı hakkında ayrıntılı bilgi için Param2 belgelerine bakın EventId .