TextFragment Classe

Definizione

Contiene informazioni sugli attributi di testo e vocali da usare nel motore di sintesi vocale.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
Ereditarietà
TextFragment

Esempi

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita da TtsEngineSsmle usa l'uso di TextFragment, SpeechEventInfo, FragmentStatee 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.

Implementazione di SpeakThe implementation of Speak

  1. Riceve una matrice di istanze di TextFragment e crea una nuova matrice di TextFragment istanze da passare al metodo Speak in un motore di sintesi sottostante.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.

    Particolare attenzione viene utilizzata per rispettare la TextOffset, TextLength nel TextFragment originale quando si crea il TextToSpeak nelle nuove istanze di TextFragment.Particular care is used to respect the TextOffset, TextLength on the original TextFragment when creating the TextToSpeak on the new TextFragment instances.

  2. Se il TtsEngineAction valore di enumerazione trovato dalla proprietà Action sul FragmentState restituito dalla proprietà State di ogni istanza di TextFragment è Speak, l'implementazione diIf 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

    • Converte l'americano in Britishisms nel testo da pronunciare.Translates Americanism to Britishisms in the text to be spoken.

    • Se la proprietà EventInterest sulle interfacce ITtsEngineSite fornite all'implementazione di supporta il tipo di evento WordBoundary, viene utilizzata un'istanza di SpeechEventInfo per creare un evento per guidare un indicatore di stato del sintetizzatore.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. Viene quindi chiamato un motore di rendering vocale con la matrice TextFragment modificata.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);  
  
}  

Commenti

L'infrastruttura della piattaforma di sintesi vocale decomprime la struttura basata su XML dell'input SSML e costruisce TextFragment oggetti.The Speech platform infrastructure unpacks the XML based structure of the SSML input and constructs TextFragment objects.

Il contenuto vocale è disponibile tramite le proprietà TextLength, TextOffsete TextToSpeak di un'istanza di TextFragment.Speech content is available through the TextLength, TextOffset, and TextToSpeak properties of a TextFragment instance.

Le informazioni sugli attributi vocali, ad esempio enfasi, pitch e frequenza, vengono ottenute dall'oggetto FragmentState restituito dalla proprietà TextFragmentState.Speech attribute information, such as emphasis, pitch, and rate, are obtained from the FragmentState object returned by the TextFragmentState property.

Costruttori

TextFragment()

Costruisce una nuova istanza di TextFragment.Constructs a new instance of TextFragment.

Proprietà

State

Ottiene o imposta le informazioni sugli attributi vocali per TextFragment.Gets or sets speech attribute information for a TextFragment.

TextLength

Ottiene o imposta la lunghezza del testo pronunciato nel frammento.Gets or sets the length of the speech text in the fragment.

TextOffset

Ottiene o imposta la posizione iniziale del testo nel frammento.Gets or sets the starting location of the text in the fragment.

TextToSpeak

Ottiene o imposta il testo pronunciato del frammento.Gets or sets the speech text of the fragment.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Si applica a