SpeechEventInfo.Param2 Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera i ustawia System.IntPtr wystąpienie (param2 w konstruktorze) odwołujące się do obiektu, który ma zostać przekazany do platformy rozpoznawania mowy w celu wygenerowania zdarzenia, którego bieżące wystąpienie SpeechEventInfo jest używane do żądania.
public:
property IntPtr Param2 { IntPtr get(); };
public IntPtr Param2 { get; }
member this.Param2 : nativeint
Public ReadOnly Property Param2 As IntPtr
Wartość właściwości
nativeint
System.IntPtr Zwraca odwołanie do obiektu, który ma zostać przekazany do platformy rozpoznawania mowy po wygenerowaniu zdarzenia określonego SpeechEventInfo przez bieżące wystąpienie obiektu.
Przykłady
Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczonej po TtsEngineSsml, i przy użyciu funkcji TextFragment, SpeechEventInfo, FragmentStatei TtsEventId
Implementacja Speak
Odbiera tablicę TextFragment wystąpień i tworzy nową tablicę TextFragment wystąpień, która ma zostać przekazana do
Speakmetody w bazowym asilniku syntezy.TtsEngineAction Jeśli wartość wyliczenia znaleziona z Action właściwości zwróconej FragmentState przez State właściwość każdego TextFragment wystąpienia to Speak, implementacja
Tłumaczy Amerykanizm na Brytyjczyków w tekście, aby był mówiony.
EventInterest Jeśli właściwość w ITtsEngineSite interfejsach dostarczonych do implementacji obsługuje WordBoundary typ zdarzenia, SpeechEventInfo wystąpienie jest używane do utworzenia zdarzenia w celu napędzania miernika postępu syntezatora.
Parametry w systemie SpeechEventInfo, w tym Param2 są używane do rejestrowania zdarzenia wygenerowanego
LogSpeechEventza pomocą metody .
Aparat renderowania mowy jest następnie wywoływany TextFragment ze zmodyfikowaną tablicą.
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);
}
Uwagi
Wymagania dotyczące System.IntPtr odwołania do właściwości SpeechEventInfo klasy są jednoznacznie określane przez wartości EventId i ParameterType właściwości SpeechEventInfo wystąpienia.Param2
Aby uzyskać szczegółowe informacje na temat używania programu , zobacz dokumentację dotyczącą EventIdprogramu Param2.