次の方法で共有


TextFragment クラス

定義

音声合成エンジンで使用するためのテキストや音声の属性情報が含まれます。

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
継承
TextFragment

次の例は、を継承し、、、 TtsEngineSsml 、およびの使用を使用しているカスタム音声合成実装の一部です TextFragment SpeechEventInfo FragmentState TtsEventId

の実装 Speak

  1. インスタンスの配列を受け取り TextFragmentTextFragment 基に Speak なる合成エンジンのメソッドに渡されるインスタンスの新しい配列を作成します。

    は、 TextOffset 新しいインスタンスでを作成するときに、元のでを考慮するために使用され TextLength TextFragment TextToSpeak TextFragment ます。

  2. TtsEngineAction Action FragmentState 各インスタンスのプロパティによって返されるのプロパティによって検出された列挙値がの場合 State TextFragment Speak 、実装

    • 読み上げられるテキストの Americanism を Britishisms に変換します。

    • 実装に提供されるインターフェイスのプロパティがイベントの種類をサポートしている場合は、のインスタンスを使用して、 EventInterest ITtsEngineSite WordBoundary SpeechEventInfo シンセサイザーの進行状況メーターを作成するためのイベントを作成します。

  3. その後、変更された配列を使用して音声レンダリングエンジンが呼び出され TextFragment ます。

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

}  

注釈

Speech プラットフォームインフラストラクチャは、SSML 入力の XML ベースの構造をアンパックし、オブジェクトを構築し TextFragment ます。

音声コンテンツは TextLength 、インスタンスの、、およびの各プロパティを使用して取得でき TextOffset TextToSpeak TextFragment ます。

強調、ピッチ、レートなどの音声属性情報は、 FragmentState プロパティによって返されるオブジェクトから取得され TextFragment State ます。

コンストラクター

TextFragment()

TextFragment の新しいインスタンスを作成します。

プロパティ

State

TextFragment の音声属性情報を取得または設定します。

TextLength

フラグメント内の音声テキストの長さを取得または設定します。

TextOffset

フラグメント内のテキストの開始位置を取得または設定します。

TextToSpeak

フラグメントの音声テキストを取得または設定します。

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

適用対象