SpeechEventInfo SpeechEventInfo SpeechEventInfo SpeechEventInfo Struct

定義

イベントの種類を指定し、その引数 (ある場合) はカスタム合成音声エンジンによるテキストから音声への変換の一部として生成されることを指定するために使用されます。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)
継承
SpeechEventInfoSpeechEventInfoSpeechEventInfoSpeechEventInfo
実装

次の例から継承するカスタムの音声合成の実装の一部は、TtsEngineSsmlの使用を使用して、 TextFragmentSpeechEventInfoFragmentStateTtsEventIdThe 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インスタンスし、の新しい配列を作成します。TextFragmentに渡されるインスタンス、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エンジン サイト オブジェクトの実装に渡されるSpeakAddLexicon、および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(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr)

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

プロパティ

EventId EventId EventId EventId

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

Param1 Param1 Param1 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 Param2 Param2 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 ParameterType ParameterType 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) Equals(Object) Equals(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) Equals(SpeechEventInfo) Equals(SpeechEventInfo) Equals(SpeechEventInfo)

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

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

演算子

Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo)

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

Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo)

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

適用対象