SpeechEventInfo Estrutura

Definição

Usado para especificar o tipo de evento e os seus argumentos (se existirem) a serem gerados como parte da representação de texto para fala por um motor de 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 abaixo faz parte de uma implementação personalizada de síntese de voz que herda de TtsEngineSsml, e utiliza o uso de TextFragment, SpeechEventInfo, FragmentState, e TtsEventId

A implementação de Speak

  1. Recebe um array de TextFragment instâncias e cria um novo array de TextFragment instâncias para serem passados ao Speak método num motor de síntese subjacente.

  2. Se o TtsEngineAction valor de enumeração por encontrado a partir da Action propriedade em o FragmentState devolvido pela State propriedade de cada TextFragment instância for Speak, a implementação

    • Traduz o americanismo para os britishismos no texto a ser falado.

    • Se a EventInterest propriedade nas ITtsEngineSite interfaces fornecidas à implementação suportar o WordBoundary tipo de evento, uma SpeechEventInfo instância é usada para criar um evento que impulsione um medidor de progresso do sintetizador.

  3. É então chamado um motor de renderização de fala com o array modificado TextFragment .

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

}

Observações

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

Construtores

Name Description
SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Constrói um .SpeechEventInfo

Propriedades

Name Description
EventId

Obtém e definem o evento da plataforma de voz, que uma instância de SpeechEventInfo é usada para solicitar.

Param1

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

Param2

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

ParameterType

Devolve o tipo de dado do objeto apontado pelo IntPtr devolvido pelo Param2 parâmetro no objeto atual SpeechEventInfo .

Métodos

Name Description
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 especificado SpeechEventInfo é igual à instância atual de SpeechEventInfo.

GetHashCode()

Fornece um código de hash para um SpeechEventInfo objeto.

Operadores

Name Description
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