SpeechEventInfo(Int16, Int16, Int32, IntPtr) Konstruktor
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skapar en lämplig 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)
Parametrar
- eventId
- Int16
En instans som TtsEventId anger vilken typ av Speech-plattformshändelse SpeechEventInfo objektet ska hantera.
- parameterType
- Int16
En instans som EventParameterType anger hur referensen System.IntPtrparam2 till ska tolkas och, underförstått, användningen av param1.
- param1
- Int32
Ett heltalsvärde som ska skickas till Speech-plattformen när händelsen som begärs av instansen av SpeechEventInfo som ska konstrueras genereras.
Den exakta innebörden av det här heltalet bestäms implicit av värdet parameterTypeför .
- param2
-
IntPtr
nativeint
En System.IntPtr instans som refererar till ett objekt. skickas till Speech-plattformen när händelsen som begärs av den instans av SpeechEventInfo som ska konstrueras genereras.
Den typ som måste refereras definieras uttryckligen av värdet parameterType. Värdet System.IntPtr.Zero.
Exempel
Exemplet nedan är en del av en anpassad implementering av talsyntes som ärver från TtsEngineSsmloch använder användningen av TextFragment, SpeechEventInfo, FragmentStateoch TtsEventId
Genomförandet av Speak
Tar emot en matris med TextFragment instanser och skapar en ny matris med TextFragment instanser som ska skickas till
Speakmetoden på en underliggande syntesmotor.TtsEngineAction Om uppräkningsvärdet som hittas från Action egenskapen på den FragmentState som returneras av egenskapen för State varje TextFragment instans är , är Speakimplementeringen
Översätter amerikanismen till britishismer i texten som ska talas.
EventInterest Om egenskapen på de ITtsEngineSite gränssnitt som tillhandahålls till implementeringen stöder WordBoundary händelsetypen, används en SpeechEventInfo instans för att skapa en händelse för att köra en synthesizer-förloppsmätare skapas.
En talrenderingsmotor anropas sedan med den ändrade TextFragment matrisen.
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);
}
Kommentarer
Tillåtna värden som används för , och parameterType och deras betydelse bestäms av vilken typ av händelse som begärs, enligt vad som anges av medlemmen param1 i som används för param2. TtsEventIdeventId
Detaljerad information om lämpliga värden för parameterType, param1och param2, finns i dokumentationen för EventId
Den typ av händelser som kan hanteras av Speech-plattformens infrastruktur kan hämtas via EventInterest egenskapen på syntmotorns platsimplementering av ITtsEngineSite.