SpeechEventInfo(Int16, Int16, Int32, IntPtr) Oluşturucu
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.
Uygun bir yapı oluşturur SpeechEventInfo .
public:
SpeechEventInfo(short eventId, short parameterType, int param1, IntPtr param2);
public SpeechEventInfo (short eventId, short parameterType, int param1, IntPtr param2);
new System.Speech.Synthesis.TtsEngine.SpeechEventInfo : int16 * int16 * int * nativeint -> System.Speech.Synthesis.TtsEngine.SpeechEventInfo
Public Sub New (eventId As Short, parameterType As Short, param1 As Integer, param2 As IntPtr)
Parametreler
- eventId
- Int16
TtsEventIdNesnenin Işleyeceği konuşma platformu olay sıralamasını belirten bir örnek SpeechEventInfo .
- parameterType
- Int16
EventParameterType System.IntPtr
Başvurusunun nasıl param2
yorumlanacağına ve ' nin nasıl kullanılacağını gösteren bir örnek param1
.
- param1
- Int32
Oluşturulacak örneği tarafından istenen olay oluşturulduğunda konuşma platformuna geçirilecek bir tamsayı değeri SpeechEventInfo .
Bu tamsayının tam anlamı, değerine göre örtülü olarak belirlenir parameterType
.
- param2
-
IntPtr
nativeint
System.IntPtr
Nesneye başvuran bir örnek. oluşturulacak örneği tarafından istenen olay oluşturulduğunda konuşma platformuna geçirilecek SpeechEventInfo .
Başvurulması gereken tür, açıkça değer tarafından tanımlanır parameterType
. Değer System.IntPtr.Zero
.
Ö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.
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));
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
, Ve için kullanılan izin verilen değerler, parameterType
param1
param2
için kullanılan üyesi tarafından belirtilen şekilde, istenen olay türüne göre belirlenir TtsEventId eventId
.
, Ve için uygun değerler hakkında ayrıntılı bilgi için parameterType
param1
bkz. param2
belgeleri EventId
Konuşma platformu altyapısı tarafından işlenebilen olayların türü, EventInterest ' nin Birleştirici altyapısı site uygulamasındaki özelliği aracılığıyla elde edilebilir ITtsEngineSite .