SpeechEventInfo.ParameterType Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce il tipo di dati dell'oggetto a cui fa riferimento IntPtr restituito dal parametro Param2 sull'oggetto SpeechEventInfo corrente.
public:
property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short
Valore della proprietà
Un valore short
corrispondente a un membro dell'enumerazione EventParameterType e che indica il tipo di dati dell'oggetto a cui fa riferimento l'elemento IntPtr restituito dal parametro Param2 e utilizzato come secondo argomento del costruttore dell'oggetto SpeechEventInfo corrente.
Esempio
L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita da e usa TtsEngineSsml TextFragment , , SpeechEventInfo FragmentState e TtsEventId
Implementazione di Speak
Riceve una matrice di istanze di e crea una nuova matrice di istanze da TextFragment passare al metodo in un motore di sintesi TextFragment
Speak
sottostante.Se il TtsEngineAction valore di enumerazione trovato dalla proprietà Action nell'oggetto restituito dalla proprietà di ogni istanza FragmentState è , State TextFragment Speak l'implementazione di
Converte l'americanismo in britishismi nel testo da pronunciare.
Se la proprietà sulle interfacce fornite all'implementazione supporta il tipo di evento , viene usata un'istanza di per creare un evento per la creazione di un contatore dello stato EventInterest ITtsEngineSite del WordBoundary SpeechEventInfo sintetizzatore.
I parametri in SpeechEventInfo , inclusi , vengono usati per ParameterType registrare l'evento generato tramite il
LogSpeechEvent
metodo .
Un motore di rendering vocale viene quindi chiamato con la matrice TextFragment modificata.
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);
}
Commenti
I requisiti relativi al riferimento della proprietà di sono determinati in modo univoco dai System.IntPtr
valori delle proprietà e Param2 SpeechEventInfo EventId ParameterType SpeechEventInfo dell'istanza.
Per informazioni dettagliate sull'uso di Param2 , vedere la documentazione per EventId .