TextFragment TextFragment TextFragment TextFragment Class

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
TextFragmentTextFragmentTextFragmentTextFragment

Ejemplos

El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que TtsEngineSsmlhereda de y usa el uso TextFragmentde SpeechEventInfo, FragmentState, y 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 deSpeakThe implementation of Speak

  1. Recibe una matriz de TextFragment instancias de y crea una nueva matriz TextFragment de instancias de Speak que se van a pasar al método 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.

    La atención especial se usa para respetar TextOffsetel TextLength , en TextToSpeak el TextFragment original al crear en las nuevas TextFragment instancias.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 TtsEngineAction valor de enumeración que se Action encuentra en la FragmentState propiedad en la State devuelta por TextFragment la propiedad Speakde cada instancia es, 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 EventInterest propiedad de las ITtsEngineSite interfaces proporcionadas a la implementación admite WordBoundary el tipo de evento SpeechEventInfo , se usa una instancia de para crear un evento para impulsar la creación de un indicador 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 TextFragment voz con la matriz 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 TextFragment y crea objetos.The Speech platform infrastructure unpacks the XML based structure of the SSML input and constructs TextFragment objects.

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

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

Constructores

TextFragment() TextFragment() TextFragment() TextFragment()

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

Propiedades

State State State State

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

TextLength TextLength TextLength 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 TextOffset TextOffset 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 TextToSpeak TextToSpeak TextToSpeak

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

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Se aplica a