TextFragment Classe

Definição

Contém informações de texto e atributos de voz para consumo por um motor de sintetizador de voz.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
Herança
TextFragment

Exemplos

O exemplo abaixo faz parte de uma implementação de síntese de voz personalizada que herda de TtsEngineSsml, e que 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.

    É dado um cuidado especial para respeitar o TextOffset, TextLength no original TextFragment ao criar o TextToSpeak nas novas TextFragment instâncias.

  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

A infraestrutura da plataforma de voz desempacota a estrutura baseada em XML da entrada SSML e constrói TextFragment objetos.

O conteúdo da fala está disponível através das TextLengthpropriedades de , TextOffset, e TextToSpeak de uma TextFragment instância.

A informação do atributo da fala, como ênfase, altura e frequência, é obtida a partir do FragmentState objeto devolvido pela TextFragmentState propriedade.

Construtores

Name Description
TextFragment()

Constrói uma nova instância de TextFragment.

Propriedades

Name Description
State

Obtém ou define informação do atributo de fala para um TextFragment.

TextLength

Obtém ou define o comprimento do texto da fala no fragmento.

TextOffset

Obtém ou define a localização inicial do texto no fragmento.

TextToSpeak

Obtém ou define o texto da fala do fragmento.

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a