Compartilhar via


SpeechEventInfo(Int16, Int16, Int32, IntPtr) Construtor

Definição

Constrói um SpeechEventInfo apropriado.

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

Uma instância de TtsEventId que indica o tipo de evento de plataforma de fala que o objeto SpeechEventInfo deve manipular.

parameterType
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.

param1
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.

O significado exato desse inteiro é determinado implicitamente pelo valor de parameterType.

param2
IntPtr

nativeint

Uma instância de System.IntPtr que referencia um objeto. a ser passado para a plataforma de fala quando o evento solicitado pela instância de SpeechEventInfo a ser construída for gerado.

O tipo que deve ser referenciado é definido explicitamente pelo valor de parameterType. O valor System.IntPtr.Zero.

Exemplos

O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada herdando de e usando o uso TtsEngineSsml TextFragment de , , SpeechEventInfo FragmentState e TtsEventId

A implementação de Speak

  1. Recebe uma matriz de instâncias e cria uma nova matriz de instâncias a serem passadas para o método em TextFragment um mecanismo de síntese TextFragment Speak subjacente.

  2. Se o valor de enumeração por encontrado na TtsEngineAction propriedade no retornado pela propriedade de cada instância for , a Action FragmentState State TextFragment Speak implementação

    • Converte o americanismo em britishisms no texto a ser falado.

    • Se a propriedade nas interfaces fornecidas para a implementação dar suporte ao tipo de evento, uma instância será usada para criar um evento para conduzir um medidor de progresso EventInterest ITtsEngineSite do WordBoundary SpeechEventInfo sintetizador.

  3. Um mecanismo de renderização de fala é chamado com a matriz TextFragment modificada.

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 para , e e seu significado são determinados pelo tipo de evento que está sendo solicitado, conforme especificado pelo parameterType membro de usado para param1 param2 TtsEventId eventId .

Para obter informações detalhadas sobre os valores apropriados parameterType para , e , consulte a param1 param2 documentação para EventId

O tipo de eventos que podem ser manipulados pela infraestrutura da plataforma de Fala pode ser obtido por meio da propriedade na implementação do site do mecanismo EventInterest de sintetizador do ITtsEngineSite .

Aplica-se a