SpeechEventInfo Struct
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.
Usato per specificare il tipo di evento e i relativi argomenti (se presenti) da generare come parte del rendering del testo nella voce da parte di un motore di riconoscimento vocale sintetico personalizzato.
public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
- Ereditarietà
- Implementazioni
Esempio
L'esempio seguente fa parte di un'implementazione personalizzata della sintesi vocale che eredita da TtsEngineSsmle usando l'uso di TextFragment, SpeechEventInfo, FragmentStatee TtsEventId
Implementazione di Speak
Riceve una matrice di TextFragment istanze e crea una nuova matrice di istanze da passare al
Speak
metodo su un motore di TextFragment sintesi sottostante.Se il TtsEngineAction valore di enumerazione trovato dalla Action proprietà nell'oggetto FragmentState restituito dalla State proprietà di ogni TextFragment istanza è Speak, l'implementazione
Traduce l'americanismo in britishismi nel testo da pronunciare.
Se la EventInterest proprietà nelle ITtsEngineSite interfacce fornite all'implementazione supporta il WordBoundary tipo di evento, viene usata un'istanza SpeechEventInfo di per creare un evento per guidare un indicatore di stato del sintetizzatore.
Viene quindi chiamato un motore di rendering vocale con la matrice modificata TextFragment .
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);
}
Commenti
Un motore di sintesi vocale personalizzato richiede la generazione di eventi in Speech Platform fornendo un'istanza appropriata SpeechEventInfo al AddEvents membro dell'oggetto sito del ITtsEngineSite motore passato alle implementazioni di Speak, AddLexicone RemoveLexicon.
Costruttori
SpeechEventInfo(Int16, Int16, Int32, IntPtr) |
Costruisce un oggetto SpeechEventInfo appropriato. |
Proprietà
EventId |
Ottiene e imposta l'evento della piattaforma di riconoscimento vocale richiesto da un'istanza di SpeechEventInfo. |
Param1 |
Ottiene e imposta il valore |
Param2 |
Ottiene e imposta l'istanza di |
ParameterType |
Restituisce il tipo di dati dell'oggetto a cui fa riferimento IntPtr restituito dal parametro Param2 sull'oggetto SpeechEventInfo corrente. |
Metodi
Equals(Object) |
Determina se un oggetto specificato è un'istanza di |
Equals(SpeechEventInfo) |
Determina se un oggetto specificato |
GetHashCode() |
Fornisce un codice hash per un |
Operatori
Equality(SpeechEventInfo, SpeechEventInfo) |
Determina se due istanze dell'oggetto |
Inequality(SpeechEventInfo, SpeechEventInfo) |
Determina se due istanze di un oggetto |