SpeechEventInfo(Int16, Int16, Int32, IntPtr) Costruttore
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.
Costruisce un oggetto appropriato 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)
Parametri
- eventId
- Int16
Istanza di che indica il tipo di TtsEventId evento della piattaforma Voce che l'oggetto SpeechEventInfo deve gestire.
- parameterType
- Int16
Istanza di EventParameterType che indica come deve essere interpretato il System.IntPtr riferimento di param2 e, in modo implicito, l'uso di param1.
- param1
- Int32
Valore intero da passare alla piattaforma Voce quando viene generato l'evento richiesto dall'istanza di SpeechEventInfo da costruire.
Il significato esatto di questo intero è determinato in modo implicito dal valore di parameterType.
- param2
-
IntPtr
nativeint
System.IntPtr Istanza che fa riferimento a un oggetto . da passare alla piattaforma Voce quando viene generato l'evento richiesto dall'istanza di SpeechEventInfo da costruire.
Il tipo a cui fare riferimento è definito in modo esplicito dal valore parameterType. Valore System.IntPtr.Zero.
Esempio
L'esempio seguente fa parte di un'implementazione personalizzata della sintesi vocale che eredita da TtsEngineSsmle usando l'uso di TextFragment, SpeechEventInfoFragmentState, eTtsEventId
Implementazione di Speak
Riceve una matrice di TextFragment istanze e crea una nuova matrice di istanze da passare al
Speakmetodo in 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 l'unità di un contatore dello stato di avanzamento 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
I valori consentiti usati per parameterType, param1e param2 il loro significato sono dettati dal tipo di evento richiesto, come specificato dal membro di TtsEventId usato per eventId.
Per informazioni dettagliate sui valori appropriati per parameterType, param1e param2, vedere la documentazione per EventId
Il tipo di eventi che è possibile gestire dall'infrastruttura della piattaforma Voce può essere ottenuto tramite la proprietà nell'implementazione EventInterest del sito del motore di sintetizzatore di ITtsEngineSite.