TextFragment TextFragment TextFragment TextFragment Class


音声合成エンジンで使用するためのテキストや音声の属性情報が含まれます。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

次の例は、をTtsEngineSsml継承し、、、 FragmentState、およびSpeechEventInfo TtsEventIdTextFragment使用を使用しているカスタム音声合成実装の一部です。The example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId.

の実装SpeakThe implementation of Speak

  1. インスタンスのTextFragment配列を受け取り、基になる合成エンジンTextFragmentSpeakメソッドに渡されるインスタンスの新しい配列を作成します。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.

    TextOffsetは、新しいTextToSpeak TextFragment TextLength インスタンスでを作成するときに、元のでを考慮するために使用されます。TextFragmentParticular care is used to respect the TextOffset, TextLength on the original TextFragment when creating the TextToSpeak on the new TextFragment instances.

  2. Action State FragmentState Speak TtsEngineAction各インスタンスのプロパティによって返されるのプロパティによって検出された列挙値がの場合、実装TextFragmentIf 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

    • 読み上げられるテキストの Americanism を Britishisms に変換します。Translates Americanism to Britishisms in the text to be spoken.

    • 実装EventInterest ITtsEngineSite に提供SpeechEventInfoされるインターフェイスのプロパティがイベントの種類をサポートしている場合は、のインスタンスを使用して、シンセサイザーの進行状況メーターを作成するためのイベントを作成します。WordBoundaryIf 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. その後、変更TextFragmentされた配列を使用して音声レンダリングエンジンが呼び出されます。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].TextToSpeak = frags[i].TextToSpeak.Substring(frags[i].TextOffset,  
    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,   
                 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);  



Speech プラットフォームインフラストラクチャは、SSML 入力の XML ベースの構造をアンパックしTextFragment 、オブジェクトを構築します。The Speech platform infrastructure unpacks the XML based structure of the SSML input and constructs TextFragment objects.

TextLength音声コンテンツはTextFragment 、インスタンスの、 TextOffset、およびTextToSpeakの各プロパティを使用して取得できます。Speech content is available through the TextLength, TextOffset, and TextToSpeak properties of a TextFragment instance.

強調、ピッチ、レートなどの音声属性情報は、 FragmentState StateプロパティTextFragmentによって返されるオブジェクトから取得されます。Speech attribute information, such as emphasis, pitch, and rate, are obtained from the FragmentState object returned by the TextFragmentState property.


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

TextFragment の新しいインスタンスを作成します。Constructs a new instance of TextFragment.


State State State State

TextFragment の音声属性情報を取得または設定します。Gets or sets speech attribute information for a TextFragment.

TextLength TextLength TextLength TextLength

フラグメント内の音声テキストの長さを取得または設定します。Gets or sets the length of the speech text in the fragment.

TextOffset TextOffset TextOffset TextOffset

フラグメント内のテキストの開始位置を取得または設定します。Gets or sets the starting location of the text in the fragment.

TextToSpeak TextToSpeak TextToSpeak TextToSpeak

フラグメントの音声テキストを取得または設定します。Sets or gets the speech text of the fragment.


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

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

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

既定のハッシュ関数として機能します。Serves as the default hash function.

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

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

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

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

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

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)