Sdílet prostřednictvím


TextFragment Třída

Definice

Obsahuje informace o atributu textu a řeči, které může použít modul syntezátoru řeči.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
Dědičnost
TextFragment

Příklady

Následující příklad je součástí vlastní implementace syntézy řeči dědící z a TtsEngineSsml pomocí , , a TextFragment SpeechEventInfo FragmentState TtsEventId .

Implementace Speak

  1. Přijme pole instancí a vytvoří nové pole instancí, které se předá metodě v základním modulu TextFragment TextFragment Speak syntézy.

    Zvláštní pozornost se používá k dodržování , na původní při TextOffset TextLength vytváření na nové TextFragment TextToSpeak TextFragment instance.

  2. Pokud je TtsEngineAction hodnota výčtu nalezena z vlastnosti vrácené Action FragmentState State vlastností každé instance , TextFragment Speak implementace

    • Překládá americkost na britismus v textu, který se má vyslovit.

    • Pokud vlastnost v rozhraních poskytovaných k implementaci podporuje typ události, instance se používá k vytvoření události pro řízení měřiče průběhu EventInterest ITtsEngineSite WordBoundary SpeechEventInfo syntezátoru.

  3. Modul pro vykreslování řeči se pak volá s upraveným TextFragment polem.

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);  

}  

Poznámky

Infrastruktura platformy Speech rozbalí strukturu vstupu SSML založenou na XML a vytvoří TextFragment objekty.

Obsah řeči je k dispozici prostřednictvím TextLength TextOffset vlastností , TextToSpeak a TextFragment instance.

Informace o atributu řeči, jako je zvýraznění, sklon a rychlost, se získávají z objektu FragmentState vráceného TextFragment State vlastností .

Konstruktory

TextFragment()

Vytvoří novou instanci TextFragment .

Vlastnosti

State

Získá nebo nastaví informace o atributu řeči pro TextFragment .

TextLength

Získá nebo nastaví délku textu řeči ve fragmentu.

TextOffset

Získá nebo nastaví počáteční umístění textu ve fragmentu.

TextToSpeak

Získá nebo nastaví řečový text fragmentu.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Platí pro