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 per SpeechEventInfo è un IntPtr creato usando PtrToStructure che fa riferimento a un token della tecnologia di riconoscimento vocale desktop di Windows, ovvero un oggetto della tecnologia di riconoscimento vocale desktop di Windows che rappresenta una risorsa, ad esempio una voce (VoiceInfo).Indicates that the param2 argument to the SpeechEventInfo is an IntPtr created using PtrToStructure that references a Windows Desktop Speech Technology token, which is a Windows Desktop Speech Technology object representing a resource, such as a voice (VoiceInfo). param1 può assumere qualsiasi valore.param1 may take on any value.

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. In genere, param1 e param2 vengono poi ignorati.Generally, param1 and param2 are then ignored. Tuttavia, se EventId è WordBoundary, è possibile generare un evento del misuratore di stato.However, if EventId is WordBoundary, a progress meter event can be generated. param1 deve essere un intero contenente la lunghezza della parola corrente e param2 un IntPtr che fa riferimento a un intero contenente l'offset della parola corrente.param1 should be an integer containing the length of the current word, and param2 an IntPtr referencing an integer containing the offset of the current word.

Esempi

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

Implementazione diSpeakThe implementation of Speak

  1. Riceve una matrice di TextFragment istanze e crea una nuova matrice di TextFragment istanze Speak da passare al 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 trovato Action dalla proprietà nell'oggetto FragmentState restituito dalla State proprietà di ogni TextFragment istanza è Speak, l'implementazione diIf 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

  3. Viene quindi chiamato un motore di rendering vocale con la TextFragment matrice modificata.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

L' EventParameterType enumerazione viene utilizzata per la costruzione di SpeechEventInfo un oggetto.The EventParameterType enumeration is used when constructing a SpeechEventInfo object. Un EventParameterType membro di enumerazione passato parameterType come argomento al costruttore per SpeechEventInfo specifica come viene interpretato param2 l'argomento del costruttore (che deve essere un IntPtr).An EventParameterType enumeration member passed as the parameterType argument to the constructor for SpeechEventInfo specifies how the param2 argument of the constructor (which must be an IntPtr) is interpreted.

La scelta di EventParameterType è determinata dal tipo di evento richiesto, come specificato da un membro di. System.Speech.Synthesis.TtsEngine.TtsEventIdThe choice of EventParameterType is dictated by the type of event being requested, as specified by a member of System.Speech.Synthesis.TtsEngine.TtsEventId.

Per informazioni dettagliate sull'uso EventParameterTypedi, vedere la documentazione relativa aEventIdFor detailed information on how use EventParameterType, see the documentation for EventId

Nota

Attualmente, le istanze di un motore di sintesi vocale gestito, scritte usando i System.Speech.Synthesis membri dello spazio dei nomi, non possono modificare le risorse dopo la costruzione.Currently, instances of a managed synthetic speech engines written using the members of the System.Speech.Synthesis namespace cannot change resources after construction.

Si applica a

Vedi anche