EventParameterType Enumeração

Definição

Enumera os tipos de ponteiros de dados passados para eventos de síntese de fala.Enumerates the types of data pointers passed to speech synthesis events.

public enum class EventParameterType
public enum EventParameterType
type EventParameterType = 
Public Enum EventParameterType
Herança
EventParameterType

Campos

Object 2

Não há suporte no momento.Currently not supported.

Pointer 3

Não há suporte no momento.Currently not supported.

String 4

Indica que o argumento param2 para o SpeechEventInfo é um System.IntPtr criado usando System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni que referencia um objeto System.String; param1 pode assumir qualquer valor.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 1

Indica que o argumento param2 para o SpeechEventInfo é um IntPtr criado usando PtrToStructure que faz referência a um token da Tecnologia de Fala da Área de Trabalho do Windows, que é um objeto da Tecnologia de Fala da Área de Trabalho do Windows que representa um recurso, como uma voz (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 pode assumir qualquer valor.param1 may take on any value.

Undefined 0

Indica que o argumento param2 para o SpeechEventInfo é indefinido.Indicates that the param2 argument to the SpeechEventInfo is undefined. Em geral, param1 e param2 e são ignorados.Generally, param1 and param2 are then ignored. No entanto, se EventId for WordBoundary, um evento de medição de progresso poderá ser gerado.However, if EventId is WordBoundary, a progress meter event can be generated. param1 deve ser um inteiro contendo o comprimento da palavra atual, e param2 um IntPtr que faz referência a um inteiro contendo o deslocamento da palavra atual.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.

Exemplos

O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada herdada de TtsEngineSsml e usando o uso de 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.

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 na Action propriedade no FragmentState retornado pela State 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

  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));  
         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);  

}  

Comentários

A EventParameterType enumeração é usada ao construir um SpeechEventInfo objeto.The EventParameterType enumeration is used when constructing a SpeechEventInfo object. Um EventParameterType membro de enumeração passado como o parameterType argumento para o construtor SpeechEventInfo especifica como o param2 argumento do Construtor (que deve ser um IntPtr ) é interpretado.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.

A escolha de EventParameterType é ditada pelo tipo de evento que está sendo solicitado, conforme especificado por um membro de System.Speech.Synthesis.TtsEngine.TtsEventId .The choice of EventParameterType is dictated by the type of event being requested, as specified by a member of System.Speech.Synthesis.TtsEngine.TtsEventId.

Para obter informações detalhadas sobre como usar EventParameterType o, consulte a documentação doEventIdFor detailed information on how use EventParameterType, see the documentation for EventId

Observação

Atualmente, as instâncias de mecanismos de fala sintéticos gerenciados escritos usando os membros do System.Speech.Synthesis namespace não podem alterar os recursos após a construção.Currently, instances of a managed synthetic speech engines written using the members of the System.Speech.Synthesis namespace cannot change resources after construction.

Aplica-se a

Confira também