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ý ukazuje IntPtr vrácený Param2 parametr v aktuálním SpeechEventInfo objektu.
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 EventParameterType výčtu a označující datový typ objektu, na který odkazuje IntPtr Param2 parametr vrácený parametrem a slouží jako druhý argument pro konstruktor aktuálního SpeechEventInfo objektu.
Příklady
Níže uvedený příklad je součástí vlastní implementace rozpoznávání řeči, která dědí z TtsEngineSsml a používá použití TextFragment , SpeechEventInfo , FragmentState a. TtsEventId
Implementace Speak
Přijme pole TextFragment instancí a vytvoří nové pole TextFragment instancí, které se má předat
Speak
metodě na podkladovém stroji syntézy.Pokud TtsEngineAction je hodnota výčtu, kterou najde Action , z vlastnosti FragmentState vrácené State vlastností každé TextFragment instance Speak , implementace
Překládá se na Britishisms v textu, který se má vyhlasovat.
Pokud EventInterest vlastnost na ITtsEngineSite rozhraních poskytovaných implementací podporuje WordBoundary Typ události, vytvoří se SpeechEventInfo instance pro vytvoření události, která bude řídit měření průběhu syntetizátoru.
Parametry SpeechEventInfo , včetně, ParameterType jsou používány k protokolování události vygenerované
LogSpeechEvent
metodou.
Modul pro vykreslování řeči se pak zavolá se změněný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 System.IntPtr
odkaz Param2 vlastnosti třídy SpeechEventInfo jsou jednoznačně určeny hodnotami EventId ParameterType vlastností a SpeechEventInfo instance.
Podrobné informace o tom, jak používat Param2 , najdete v dokumentaci k EventId .