TextFragment Clase

Definición

Contiene información de atributos de texto y de voz para su uso en un motor de síntesis de voz.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
Herencia
TextFragment

Ejemplos

El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que hereda de y usa TtsEngineSsml TextFragment , , y SpeechEventInfo FragmentState TtsEventId .

La implementación de Speak

  1. Recibe una matriz de instancias y crea una nueva matriz de instancias que se pasarán al método TextFragment en un motor de TextFragment Speak síntesis subyacente.

    Se usa una atención especial para respetar TextOffset , en el original al crear en las nuevas TextLength TextFragment TextToSpeak TextFragment instancias.

  2. Si el TtsEngineAction valor de enumeración de encontrado en la propiedad en el devuelto por la propiedad de cada instancia Action es , la FragmentState State TextFragment Speak implementación

    • Traduce el americanismo a los britishismos en el texto que se va a hablar.

    • Si la propiedad en las interfaces proporcionadas a la implementación admite el tipo de evento , se usa una instancia de para crear un evento para impulsar un medidor de progreso EventInterest ITtsEngineSite del WordBoundary SpeechEventInfo sintetizador.

  3. A continuación, se llama a un motor de representación de voz con la 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);  

}  

Comentarios

La infraestructura de la plataforma de voz desempaquete la estructura basada en XML de la entrada SSML y construye TextFragment objetos .

El contenido de voz está disponible a través TextLength de las propiedades , y de una instancia de TextOffset TextToSpeak TextFragment .

La información del atributo de voz, como el énfasis, el tono y la velocidad, se obtiene del FragmentState objeto devuelto por la propiedad TextFragment State .

Constructores

TextFragment()

Crea una nueva instancia de TextFragment.

Propiedades

State

Obtiene o establece la información de atributos de voz para TextFragment.

TextLength

Obtiene o establece la longitud del texto de voz en el fragmento.

TextOffset

Obtiene o establece la ubicación de inicio del texto en el fragmento.

TextToSpeak

Obtiene o establece el texto de voz del fragmento.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Se aplica a