SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) Constructor

Definição

Constrói um SpeechEventInfo apropriado.Constructs an appropriate 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)

Parâmetros

eventId
Int16 Int16 Int16 Int16

Uma instância de TtsEventId que indica o tipo de evento de plataforma de fala que o objeto SpeechEventInfo deve manipular.An instance of TtsEventId indicating the sort of Speech platform event the SpeechEventInfo object is to handle.

parameterType
Int16 Int16 Int16 Int16

Uma instância de EventParameterType que indica como a referência System.IntPtr de param2 deve ser interpretada e, por implicação, o uso de param1.An instance of EventParameterType indicating how the System.IntPtr reference of param2 is to be interpreted, and, by implication, the use of param1.

param1
Int32 Int32 Int32 Int32

Um valor inteiro a ser passado para a plataforma de fala quando o evento solicitado pela instância de SpeechEventInfo a ser construída for gerado.An integer value to be passed to the Speech platform when the event requested by the instance of SpeechEventInfo to be constructed is generated.

O significado exato desse inteiro é determinado implicitamente pelo valor de parameterType.The exact meaning of this integer is implicitly determined by the value of parameterType.

param2
IntPtr IntPtr IntPtr IntPtr

Uma instância de System.IntPtr que referencia um objeto.A System.IntPtr instance referencing an object. a ser passado para a plataforma de fala quando o evento solicitado pela instância de SpeechEventInfo a ser construída for gerado.to be passed to the Speech platform when the event requested by the instance of SpeechEventInfo to be constructed is generated.

O tipo que deve ser referenciado é definido explicitamente pelo valor de parameterType.The type which must be referenced is explicitly defined by the value parameterType. O valor System.IntPtr.Zero.The value System.IntPtr.Zero.

Exemplos

O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada TtsEngineSsmlque herda de e usando o TextFragmentuso SpeechEventInfode FragmentState,, eTtsEventIdThe example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId

A implementação deSpeakThe implementation of Speak

  1. Recebe uma matriz de TextFragment instâncias e cria uma nova matriz de TextFragment instâncias a ser passada para o Speak método em um mecanismo de síntese subjacente.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 o TtsEngineAction valor de enumeração encontrado Action na propriedade State no FragmentState retornado pela propriedade de cada TextFragment instância for Speak, a implementaçãoIf 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

    • Traduz o American Britishisms no texto a ser falado.Translates Americanism to Britishisms in the text to be spoken.

    • Se a EventInterest ITtsEngineSite Propriedade nas interfaces fornecidas para a implementação oferecer suporte ao WordBoundary tipo de evento, SpeechEventInfo uma instância será usada para criar um evento para gerar um medidor de progresso do sintetizador criado.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.

  3. Um mecanismo de renderização de fala é chamado com a TextFragment matriz modificada.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));  
        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);  

}  

Comentários

Os valores permitidos usados parameterTypepara param1, param2 e e seu significado são ditados pelo tipo de evento que está sendo solicitado, conforme especificado pelo membro de TtsEventId usado para eventId.Permitted values used for parameterType, param1, and param2 and their meaning is dictated by the type of event being requested, as specified by the member of TtsEventId used for eventId.

Para obter informações detalhadas sobre os valores parameterTypeapropriados param1para, param2e, consulte a documentação doEventIdFor detailed information on appropriate values for parameterType, param1, and param2, see documentation for EventId

O tipo dos eventos que podem ser tratados pela infraestrutura da plataforma de fala pode ser obtido por meio EventInterest da propriedade na implementação do site do mecanismo do ITtsEngineSitesintetizador do.The type of the events which can be handled by the Speech platform infrastructure can be obtained through the EventInterest property on the synthesizer engine site implementation of ITtsEngineSite.

Aplica-se a