SpeechEventInfo 構造体

定義

イベントの種類を指定し、その引数 (ある場合) はカスタム合成音声エンジンによるテキストから音声への変換の一部として生成されることを指定するために使用されます。Used to specify the type of event, and its arguments (if any) to be generated as part of the rendering of text to speech by a custom synthetic speech engine.

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 TextFragment SpeechEventInfo FragmentState およびの使用を使用しているカスタム音声合成実装の一部です。 TtsEventIdThe 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. インスタンスの配列を受け取り TextFragmentTextFragment 基に Speak なる合成エンジンのメソッドに渡されるインスタンスの新しい配列を作成します。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.

  2. TtsEngineAction Action FragmentState 各インスタンスのプロパティによって返されるのプロパティによって検出された列挙値がの場合 State TextFragment Speak 、実装If 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 WordBoundary SpeechEventInfo シンセサイザーの進行状況メーターを作成するためのイベントを作成します。If 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].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);  

}  

注釈

カスタム音声合成エンジンは SpeechEventInfo AddEvents ITtsEngineSite 、、、およびの実装に渡されるエンジンサイトオブジェクトのメンバーに適切なインスタンスを提供することによって、speech プラットフォームでイベントの生成を要求し Speak AddLexicon RemoveLexicon ます。A custom speech synthesis engine requests the generation of events under the Speech Platform by providing an appropriate SpeechEventInfo instance to AddEvents member of the ITtsEngineSite engine site object passed to implementations of Speak, AddLexicon, and RemoveLexicon.

コンストラクター

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

適切な SpeechEventInfo を構築します。Constructs an appropriate SpeechEventInfo.

プロパティ

EventId

SpeechEventInfo インスタンスが要求を行うために使用される音声プラットフォーム イベントを取得または設定します。Gets and set the Speech platform event which an instance of SpeechEventInfo is used to request.

Param1

SpeechEventInfo の現在のインスタンスが要求を行うために使用されるイベントを生成するために音声プラットフォームに渡される integer 値 (コンストラクター内の param1) を取得または設定します。Gets and set the integer value (param1 in the constructor) to be passed to the Speech platform to generate an event the current instance of SpeechEventInfo is used to request.

Param2

SpeechEventInfo の現在のインスタンスが要求を行うために使用するイベントを生成するために音声プラットフォームに渡されるオブジェクトを参照する System.IntPtr インスタンス (コンストラクター内の param2) を取得および設定します。Gets and set the System.IntPtr instance (param2 in the constructor) referencing the object to be passed to the Speech platform to generate an event the current instance of SpeechEventInfo is used to request.

ParameterType

現在の Param2 オブジェクトの SpeechEventInfo パラメーターが返す IntPtr によってポイントされるオブジェクトのデータ型を返します。Returns the data type of the object pointed to by the IntPtr returned by the Param2 parameter on the current SpeechEventInfo object.

メソッド

Equals(Object)

指定したオブジェクトが SpeechEventInfo のインスタンスで、現在の SpeechEventInfo インスタンスと等しいかどうかを判定します。Determines whether a specified object is an instance of SpeechEventInfo and equal to the current instance of SpeechEventInfo.

Equals(SpeechEventInfo)

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

GetHashCode()

SpeechEventInfo オブジェクトにハッシュ コードを提供します。Provides a hash code for a SpeechEventInfo object.

演算子

Equality(SpeechEventInfo, SpeechEventInfo)

SpeechEventInfo の 2 つのインスタンスが等しいかどうかを判断します。Determines whether two instances of SpeechEventInfo are equal.

Inequality(SpeechEventInfo, SpeechEventInfo)

SpeechEventInfoの 2 つのインスタンスが等しくないかどうかを判断します。Determines whether two instances of SpeechEventInfo are not equal.

適用対象