EventParameterType EventParameterType EventParameterType EventParameterType Enum

Definizione

Enumera i tipi di puntatori di dati passati agli eventi di sintesi vocale.Enumerates the types of data pointers passed to speech synthesis events.

public enum class EventParameterType
public enum EventParameterType
type EventParameterType = 
Public Enum EventParameterType
Ereditarietà
EventParameterTypeEventParameterTypeEventParameterTypeEventParameterType

Campi

Object Object Object Object 2

Attualmente non supportato.Currently not supported.

Pointer Pointer Pointer Pointer 3

Attualmente non supportato.Currently not supported.

String String String String 4

Indica che l'argomento param2 all'oggetto SpeechEventInfo è System.IntPtr creato utilizzando System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni che fa riferimento a un oggetto System.String; il parametro param1 può accettare qualsiasi valore.Indicates that the param2 argument to the SpeechEventInfo is a System.IntPtr created using System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni referencing a System.String object; param1 may take on any value.

Token Token Token Token 1

Indica che l'argomento param2 all'oggetto SpeechEventInfo èIndicates that the param2 argument to the SpeechEventInfo is a

Undefined Undefined Undefined Undefined 0

Indica che l'argomento param2 all'oggetto SpeechEventInfo non è definito.Indicates that the param2 argument to the SpeechEventInfo is undefined.

Esempi

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita da TtsEngineSsmle tramite l'utilizzo di TextFragment, SpeechEventInfo, FragmentState, e TtsEventId.The example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId.

L'implementazione di SpeakThe implementation of Speak

  1. Riceve una matrice di TextFragment istanze e crea una nuova matrice del TextFragment istanze deve essere passato il Speak metodo su un motore di sintesi sottostante.Receives an array of TextFragment instances and creates a new array of TextFragment instances to be passed to the Speak method on an underlying synthesis engine.

  2. Se il TtsEngineAction valore di enumerazione da trovato dal Action proprietà le FragmentState restituito dal State proprietà di ogni TextFragment istanza è Speak, l'implementazioneIf the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • Traduce Americanism a Britishisms nel testo da pronunciare.Translates Americanism to Britishisms in the text to be spoken.

    • Se il EventInterest proprietà il ITtsEngineSite interfacce fornite per il supporto di implementazione il WordBoundary tipo di evento, un SpeechEventInfo istanza viene usata per creare un evento all'unità viene creato un indicatore di avanzamento del sintetizzatore.If the EventInterest property on the ITtsEngineSite interfaces provided to the implementation support the WordBoundary event type, a SpeechEventInfo instance is used to create an event to drive a synthesizer progress meter is created.

      I parametri nel SpeechEventInfo, tra cui la EventParameterType valore del membro restituito da ParameterType, vengono utilizzate per registrare l'evento generato tramite la LogSpeechEvent (metodo).The parameters on SpeechEventInfo, including the EventParameterType member value returned by ParameterType, are used to log the event generated through the LogSpeechEvent method.

  3. Un motore di rendering di sintesi vocale viene quindi chiamato con modificato TextFragment matrice.A speech rendering engine is then called with the modified TextFragment array.

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

EventParameterType viene usato per costruire un SpeechEventInfo oggetto.EventParameterType is used when constructing a SpeechEventInfo object. Un'istanza di EventParameterType passato come il parameterType argomento al costruttore per SpeechEventInfo specifica come il param2 argomento del costruttore (che deve essere un System.IntPtr) viene interpretato.An instance of EventParameterType passed as the parameterType argument to the constructor for SpeechEventInfo specifies how the param2 argument of the constructor (which must be a System.IntPtr) is interpreted.

La scelta della EventParameterType dipende dal tipo di evento richiesto, come specificato da un membro del TtsEventId.The choice of EventParameterType is dictated by the type of event being requested, as specified by a member of TtsEventId.

Per informazioni dettagliate su come utilizzare EventParameterType, vedere la documentazione per EventIdFor detailed information on how use EventParameterType, see documentation for EventId

Si applica a

Vedi anche