TextFragment Classe

Definizione

Contiene informazioni sugli attributi di testo e vocali da usare nel motore di sintesi vocale.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
Ereditarietà
TextFragment

Esempio

L'esempio seguente fa parte di un'implementazione di sintesi vocale personalizzata che eredita da e usando TtsEngineSsml TextFragment , , e SpeechEventInfo FragmentState TtsEventId .

Implementazione di Speak

  1. Riceve una matrice di istanze e crea una nuova matrice di istanze da TextFragment passare al metodo in un motore di sintesi TextFragment Speak sottostante.

    Particolare attenzione viene usata per rispettare TextOffset , TextLength nell'originale TextFragment quando si crea nelle nuove istanze di TextToSpeak TextFragment .

  2. Se il TtsEngineAction valore di enumerazione trovato dalla proprietà Action nell'oggetto restituito dalla proprietà di ogni istanza FragmentState è , State TextFragment Speak l'implementazione

    • Converte l'americanismo in inglesismi nel testo da pronunciare.

    • Se la proprietà sulle interfacce fornite all'implementazione supporta il tipo di evento , viene usata un'istanza di per creare un evento per guidare un contatore dello stato EventInterest ITtsEngineSite del WordBoundary SpeechEventInfo sintetizzatore.

  3. Un motore di rendering vocale viene quindi chiamato con la matrice TextFragment modificata.

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 Speech decomprime la struttura basata su XML dell'input SSML e costruisce TextFragment oggetti.

Il contenuto vocale è disponibile tramite TextLength le proprietà , e di TextOffset TextToSpeak TextFragment un'istanza di .

Le informazioni sugli attributi voce, ad esempio enfasi, passo e frequenza, vengono ottenute FragmentState dall'oggetto restituito dalla TextFragment State proprietà .

Costruttori

TextFragment()

Costruisce una nuova istanza di TextFragment.

Proprietà

State

Ottiene o imposta le informazioni sugli attributi vocali per TextFragment.

TextLength

Ottiene o imposta la lunghezza del testo pronunciato nel frammento.

TextOffset

Ottiene o imposta la posizione iniziale del testo nel frammento.

TextToSpeak

Ottiene o imposta il testo pronunciato del frammento.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a