Compartilhar via


TextFragment Classe

Definição

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

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 de e usando o uso TtsEngineSsml de , , e TextFragment SpeechEventInfo FragmentState 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.

    Um cuidado específico é usado para respeitar TextOffset o , no original ao criar o nas novas TextLength TextFragment TextToSpeak TextFragment instâncias.

  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

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

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

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

Construtores

TextFragment()

Constrói uma nova instância de TextFragment.

Propriedades

State

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

TextLength

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

TextOffset

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

TextToSpeak

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

Métodos

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 Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a