Freigeben über


TextFragment Klasse

Definition

Enthält Attributinformationen zu Text und Sprache für die Verarbeitung durch eine Sprachsynthesizer-Engine.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
Vererbung
TextFragment

Beispiele

Das folgende Beispiel ist Teil einer benutzerdefinierten Sprachsyntheseimplementierung, die von erbt und die Verwendung von TtsEngineSsml TextFragment , , und SpeechEventInfo FragmentState TtsEventId verwendet.

Die Implementierung von Speak

  1. Empfängt ein Array von -Instanzen und erstellt ein neues Array von -Instanzen, das an die -Methode in einer zugrunde TextFragment TextFragment Speak liegenden Synthese-Engine übergeben werden soll.

    Besondere Sorgfalt wird verwendet, um beim Erstellen von auf den neuen Instanzen die -Instanz auf dem TextOffset TextLength TextFragment TextToSpeak TextFragment originalen zu achten.

  2. Wenn der Enumerationswert von aus der -Eigenschaft auf dem gefunden wurde, der von der -Eigenschaft jeder Instanz TtsEngineAction Action zurückgegeben FragmentState State TextFragment Speak wird, ist die -Implementierung.

    • Übersetzt Denamenismus in Britishisms im zu sprechenden Text.

    • Wenn die -Eigenschaft auf den Schnittstellen, die für die Implementierung bereitgestellt werden, den Ereignistyp unterstützt, wird eine -Instanz verwendet, um ein Ereignis zu erstellen, um eine EventInterest ITtsEngineSite Synthetizer-Statusanzeige zu WordBoundary SpeechEventInfo erzeugen.

  3. Eine Sprachrendering-Engine wird dann mit dem geänderten Array TextFragment aufgerufen.

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

}  

Hinweise

Die Speech-Plattforminfrastruktur entpackt die XML-basierte Struktur der SSML-Eingabe und erstellt TextFragment Objekte.

Sprachinhalte sind über die TextLength Eigenschaften , und einer TextOffset TextToSpeak -Instanz TextFragment verfügbar.

Sprachattributinformationen wie Hervorhebung, Tonhöhe und Rate werden aus dem von der -Eigenschaft FragmentState zurückgegebenen Objekt TextFragment State ermittelt.

Konstruktoren

TextFragment()

Erstellt eine neue Instanz von TextFragment.

Eigenschaften

State

Ruft Sprachattributinformationen für eine TextFragment ab oder legt diese fest.

TextLength

Ruft die Länge des Sprachtexts im Fragment ab oder legt diese fest.

TextOffset

Ruft die Startposition des Texts im Fragment ab oder legt diese fest.

TextToSpeak

Ruft den Sprachtext des Fragments ab oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für