SpeechEventInfo 構造体

定義

イベントの種類と、カスタム合成音声エンジンによるテキスト読み上げのレンダリングの一部として生成される引数 (存在する場合) を指定するために使用されます。

public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
継承
SpeechEventInfo
実装

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

の実装 Speak

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

  2. 各インスタンスの TtsEngineAction プロパティによって返される State の プロパティFragmentStateから Action が見つかった列挙値が の場合、実装は ですSpeakTextFragment

    • 話されるテキストの中でアメリカ主義を英国主義に翻訳します。

    • 実装に 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);  

}  

注釈

カスタム音声合成エンジンは、および RemoveLexiconの実装に渡されるエンジン サイト オブジェクトのITtsEngineSiteメンバーに適切なSpeechEventInfoインスタンスをAddEvents提供することで、Speech Platform でイベントのSpeakAddLexicon生成を要求します。

コンストラクター

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

適切な SpeechEventInfo を構築します。

プロパティ

EventId

SpeechEventInfo インスタンスが要求を行うために使用される音声プラットフォーム イベントを取得または設定します。

Param1

SpeechEventInfo の現在のインスタンスが要求を行うために使用されるイベントを生成するために音声プラットフォームに渡される integer 値 (コンストラクター内の param1) を取得または設定します。

Param2

SpeechEventInfo の現在のインスタンスが要求を行うために使用するイベントを生成するために音声プラットフォームに渡されるオブジェクトを参照する System.IntPtr インスタンス (コンストラクター内の param2) を取得および設定します。

ParameterType

現在の Param2 オブジェクトの SpeechEventInfo パラメーターが返す IntPtr によってポイントされるオブジェクトのデータ型を返します。

メソッド

Equals(Object)

指定した オブジェクトが のインスタンスであり、 の現在の SpeechEventInfo インスタンス SpeechEventInfoと等しいかどうかを判断します。

Equals(SpeechEventInfo)

指定した SpeechEventInfo オブジェクトが の現在の SpeechEventInfoインスタンスと等しいかどうかを判断します。

GetHashCode()

オブジェクトのハッシュ コードを SpeechEventInfo 提供します。

演算子

Equality(SpeechEventInfo, SpeechEventInfo)

SpeechEventInfo の 2 つのインスタンスが等しいかどうかを確認します。

Inequality(SpeechEventInfo, SpeechEventInfo)

SpeechEventInfo の 2 つのインスタンスが等しくないかどうかを確認します。

適用対象