TextFragment TextFragment TextFragment TextFragment Class

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à
TextFragmentTextFragmentTextFragmentTextFragment

Esempi

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita TtsEngineSsmlda e usando l'uso di TextFragment, SpeechEventInfo FragmentState, e 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 diSpeakThe implementation of Speak

  1. Riceve una matrice di TextFragment istanze e crea una nuova matrice di TextFragment istanze Speak da passare al metodo su 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 TextOffset, TextLength nell'oggetto originale TextFragment quando si crea l' TextToSpeak oggetto sulle nuove TextFragment istanze.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 Action dalla proprietà nell'oggetto FragmentState restituito dalla State proprietà di ogni TextFragment istanza è 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 EventInterest proprietà ITtsEngineSite nelle interfacce fornite all'implementazione di supporta il WordBoundary tipo di evento, viene SpeechEventInfo utilizzata un'istanza per creare un evento per la creazione di 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 TextFragment matrice 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 crea TextFragment oggetti.The Speech platform infrastructure unpacks the XML based structure of the SSML input and constructs TextFragment objects.

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

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

Costruttori

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

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

Proprietà

State State State State

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

TextLength TextLength TextLength TextLength

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

TextOffset TextOffset TextOffset TextOffset

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

TextToSpeak TextToSpeak TextToSpeak TextToSpeak

Imposta o ottiene il testo pronunciato del frammento.Sets or gets the speech text of the fragment.

Metodi

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

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

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

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

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

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

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

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

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

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

(Inherited from Object)

Si applica a