SpeechEventInfo(Int16, Int16, Int32, IntPtr) Konstruktor
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.
Tworzy odpowiedni element 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)
Parametry
- eventId
- Int16
Wystąpienie wskazujące rodzaj zdarzenia platformy TtsEventId mowy, które SpeechEventInfo obiekt ma obsłużyć.
- parameterType
- Int16
Wystąpienie funkcji wskazujące, jak ma być interpretowane odwołanie EventParameterType System.IntPtr
i, param2
implikacja, użycie . param1
- param1
- Int32
Wartość całkowita, która ma zostać przekazana do platformy rozpoznawania mowy podczas generowania zdarzenia żądanego przez wystąpienie klasy do SpeechEventInfo skonstruowania.
Dokładne znaczenie tej liczby całkowitej jest niejawnie określane przez wartość parameterType
.
- param2
-
IntPtr
nativeint
Wystąpienie System.IntPtr
odwołujące się do obiektu. przekazywany do platformy rozpoznawania mowy podczas generowania zdarzenia żądanego przez wystąpienie klasy do SpeechEventInfo skonstruowania.
Typ, do którego należy się odwołać, jest jawnie definiowany przez wartość parameterType
. Wartość System.IntPtr.Zero
.
Przykłady
Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczącej z funkcji i używającej wartości TtsEngineSsml , TextFragment , SpeechEventInfo FragmentState i TtsEventId
Implementacja programu Speak
Odbiera tablicę wystąpień i tworzy nową tablicę wystąpień, które mają zostać przekazane do metody w TextFragment TextFragment
Speak
bazowym a aparatze syntezy.Jeśli wartość TtsEngineAction wyliczenia według znalezionej we właściwości zwróconej przez właściwość każdego wystąpienia to Action FragmentState , State TextFragment Speak implementacja
Tłumaczy americanizm na britishisms w tekście, który ma być wypowiadany.
Jeśli właściwość w interfejsach dostarczonych do implementacji obsługuje typ zdarzenia, wystąpienie jest używane do utworzenia zdarzenia w celu utworzenia miernika postępu EventInterest ITtsEngineSite WordBoundary SpeechEventInfo syntezatora.
Aparat renderowania mowy jest następnie wywoływany z zmodyfikowaną TextFragment 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));
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
Dozwolone wartości używane dla wartości , i oraz ich znaczenie są określane przez typ żądanego zdarzenia określony przez członka dla parameterType
param1
param2
TtsEventId . eventId
Aby uzyskać szczegółowe informacje na temat odpowiednich wartości parameterType
dla , i , zobacz param1
param2
dokumentację EventId
Typ zdarzeń, które mogą być obsługiwane przez infrastrukturę platformy rozpoznawania mowy, można uzyskać za pośrednictwem właściwości w implementacji lokacji aparatu EventInterest syntezatora ITtsEngineSite .