Compartilhar via


TextFragment Classe

Definição

Contém informações de atributo de fala e texto para consumo por um mecanismo de sintetizador de fala.

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

Exemplos

O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada herdando e TtsEngineSsmlusando o uso de TextFragment, SpeechEventInfoe FragmentStateTtsEventId.

A implementação de Speak

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

    Cuidados específicos são usados para respeitar o TextOffset. no original TextFragment ao criar as TextToSpeak novas TextFragment instânciasTextLength.

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

    • Traduz o americanismo para os britânicos no texto a ser falado.

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

  3. Um mecanismo de renderização de fala é chamado com a matriz modificada 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);

}

Comentários

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

O conteúdo da fala está disponível por meio das TextLengthTextOffsetpropriedades e TextToSpeak propriedades de uma TextFragment instância.

Informações de atributo de fala, como ênfase, tom e taxa, são obtidas do FragmentState objeto retornado pela TextFragmentState propriedade.

Construtores

Nome Description
TextFragment()

Constrói uma nova instância de TextFragment.

Propriedades

Nome Description
State

Obtém ou define informações de atributo de fala para um TextFragment.

TextLength

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

TextOffset

Obtém ou define o local inicial do texto no fragmento.

TextToSpeak

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

Métodos

Nome Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a