Partilhar via


SpeechEventInfo Estrutura

Definição

Usado para especificar o tipo de evento e seus argumentos (se houver) a serem gerados como parte da renderização de texto em fala por um mecanismo de conversão de texto em fala sintética personalizado.

public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
Herança
SpeechEventInfo
Implementações

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

Um mecanismo de síntese de fala personalizado solicita a geração de eventos na Plataforma de Fala fornecendo uma instância apropriada para o membro do objeto do site do mecanismo passado para implementações SpeechEventInfo AddEvents de , e ITtsEngineSite Speak AddLexicon RemoveLexicon .

Construtores

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Constrói um SpeechEventInfo apropriado.

Propriedades

EventId

Obtém e define o evento da plataforma de fala que uma instância de SpeechEventInfo é usada para solicitar.

Param1

Obtém e define o valor de integer (param1 no construtor) a ser passado para a plataforma de fala para gerar um evento que a instância de SpeechEventInfo atual é usada para solicitar.

Param2

Obtém e define a instância de System.IntPtr (param2 no construtor) que referencia o objeto a ser passado para a plataforma de fala para gerar um evento que a instância atual do SpeechEventInfo é usada para solicitar.

ParameterType

Retorna o tipo de dados do objeto apontado pelo IntPtr retornado pelo parâmetro Param2 no objeto SpeechEventInfo atual.

Métodos

Equals(Object)

Determina se um objeto especificado é uma instância de SpeechEventInfo e é igual à instância atual de SpeechEventInfo.

Equals(SpeechEventInfo)

Determina se um objeto SpeechEventInfo especificado é igual à instância atual de SpeechEventInfo.

GetHashCode()

Fornece um código hash para um objeto SpeechEventInfo.

Operadores

Equality(SpeechEventInfo, SpeechEventInfo)

Determina se duas instâncias de SpeechEventInfo são iguais.

Inequality(SpeechEventInfo, SpeechEventInfo)

Determina se duas instâncias de SpeechEventInfo não são iguais.

Aplica-se a