SpeechEventInfo.ParameterType Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí datový typ objektu, na který IntPtr odkazuje vrácený Param2 parametrem aktuálního objektu SpeechEventInfo .
public:
property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short
Hodnota vlastnosti
short Hodnota odpovídající členu výčtu EventParameterType a označující datový typ objektu odkazující IntPtr na vrácený Param2 parametrem a použit jako druhý argument pro konstruktor aktuálního SpeechEventInfo objektu.
Příklady
Následující příklad je součástí vlastní implementace syntézy řeči zděděné z TtsEngineSsml, a použití použití TextFragment, SpeechEventInfo, FragmentStatea , a TtsEventId
Provádění Speak
Přijme pole TextFragment instancí a vytvoří novou matici TextFragment instancí, která se předá
Speakmetodě v podkladovém syntetizačním modulu.Pokud je hodnota výčtu TtsEngineAction nalezena z Action vlastnosti FragmentState vrácené State vlastností každé TextFragment instance je Speakimplementace
Překládá americanismus do britštiny v textu, který se má vyslovovat.
EventInterest Pokud vlastnost v ITtsEngineSite rozhraní poskytovaných pro implementaci podporuje WordBoundary typ události, SpeechEventInfo instance se použije k vytvoření události pro řízení syntetizátoru průběhu měřiče.
Parametry pro SpeechEventInfo, včetně ParameterType se používají k protokolování události vygenerované prostřednictvím
LogSpeechEventmetody.
Potom se zavolá modul pro vykreslování řeči s upraveným TextFragment polem.
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);
}
Poznámky
Požadavky na odkaz na System.IntPtrParam2 vlastnost SpeechEventInfo jsou jedinečně určeny hodnotami EventId a ParameterType vlastnostmi SpeechEventInfo instance.
Podrobné informace o tom, jak používat Param2, naleznete v dokumentaci .EventId