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.Contains text and speech attribute information for consumption by a speech synthesizer engine.

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 TtsEngineSsmly usa el uso de TextFragment, SpeechEventInfo, FragmentStatey TtsEventId.The example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId.

La implementación de SpeakThe implementation of Speak

  1. Recibe una matriz de instancias de TextFragment y crea una nueva matriz de instancias de TextFragment que se van a pasar al método Speak en un motor de síntesis subyacente.Receives an array of TextFragment instances and creates a new array of TextFragment instances to be passed to the Speak method on an underlying synthesis engine.

    Se utiliza una atención especial para respetar el TextOffset, TextLength en el TextFragment original al crear el TextToSpeak en las nuevas instancias de TextFragment.Particular care is used to respect the TextOffset, TextLength on the original TextFragment when creating the TextToSpeak on the new TextFragment instances.

  2. Si el valor de enumeración de TtsEngineAction encontrado en la propiedad Action de la FragmentState devuelto por la propiedad State de cada instancia de TextFragment es Speak, la implementaciónIf the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • Traduce el Americanism a Britishisms en el texto que se va a hablar.Translates Americanism to Britishisms in the text to be spoken.

    • Si la propiedad EventInterest de las interfaces de ITtsEngineSite proporcionadas a la implementación admite el tipo de evento WordBoundary, se usa una instancia de SpeechEventInfo para crear un evento para impulsar la creación de un medidor de progreso de sintetizador.If the EventInterest property on the ITtsEngineSite interfaces provided to the implementation support the WordBoundary event type, a SpeechEventInfo instance is used to create an event to drive a synthesizer progress meter is created.

  3. A continuación, se llama a un motor de representación de voz con la matriz de TextFragment modificada.A speech rendering engine is then called with the modified TextFragment array.

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 desempaqueta la estructura basada en XML de la entrada de SSML y construye objetos TextFragment.The Speech platform infrastructure unpacks the XML based structure of the SSML input and constructs TextFragment objects.

El contenido de voz está disponible a través de las propiedades TextLength, TextOffsety TextToSpeak de una instancia de TextFragment.Speech content is available through the TextLength, TextOffset, and TextToSpeak properties of a TextFragment instance.

La información de atributos de voz, como el énfasis, el paso y la tasa, se obtienen del objeto FragmentState devuelto por la propiedad State TextFragment.Speech attribute information, such as emphasis, pitch, and rate, are obtained from the FragmentState object returned by the TextFragmentState property.

Constructores

TextFragment()

Crea una nueva instancia de TextFragment.Constructs a new instance of TextFragment.

Propiedades

State

Obtiene o establece la información de atributos de voz para TextFragment.Gets or sets speech attribute information for a TextFragment.

TextLength

Obtiene o establece la longitud del texto de voz en el fragmento.Gets or sets the length of the speech text in the fragment.

TextOffset

Obtiene o establece la ubicación de inicio del texto en el fragmento.Gets or sets the starting location of the text in the fragment.

TextToSpeak

Obtiene o establece el texto de voz del fragmento.Gets or sets the speech text of the fragment.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve un valor de tipo string que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Se aplica a