Bagikan melalui


SpeechEventInfo.ParameterType Properti

Definisi

Mengembalikan tipe data objek yang ditujukkan oleh IntPtr yang dikembalikan oleh Param2 parameter pada objek saat ini SpeechEventInfo .

public:
 property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short

Nilai Properti

short Nilai yang sesuai dengan anggota EventParameterType enumerasi dan menunjukkan jenis data objek yang ditunjukkan oleh IntPtr yang dikembalikan oleh Param2 parameter dan digunakan sebagai argumen kedua untuk konstruktor objek saat iniSpeechEventInfo.

Contoh

Contoh di bawah ini adalah bagian dari implementasi sintesis ucapan kustom yang mewarisi dari TtsEngineSsml, dan menggunakan penggunaan TextFragment, , SpeechEventInfoFragmentState, danTtsEventId

Implementasi Speak

  1. Menerima array TextFragment instans dan membuat array TextFragment instans baru untuk diteruskan ke Speak metode pada mesin sintesis yang mendasar.

  2. TtsEngineAction Jika nilai enumerasi dengan ditemukan dari Action properti pada FragmentState yang dikembalikan oleh State properti dari setiap TextFragment instans adalah Speak, implementasinya

    • Menerjemahkan Americanisme ke Britishism dalam teks yang akan diucapkan.

    • EventInterest Jika properti pada ITtsEngineSite antarmuka yang disediakan untuk implementasi mendukung WordBoundary jenis peristiwa, SpeechEventInfo instans digunakan untuk membuat peristiwa untuk mendorong pengukur kemajuan synthesizer dibuat.

      Parameter pada SpeechEventInfo, termasuk ParameterType digunakan untuk mencatat peristiwa yang dihasilkan melalui LogSpeechEvent metode .

  3. Mesin penyajian ucapan kemudian dipanggil dengan array yang dimodifikasi 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));
         LogSpeechEvent(spEvent.EventId,
                        spEvent.ParameterType,
                        spEvent.Param1,
                        spEvent.Param2);
        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);

}

Keterangan

Persyaratan tentang System.IntPtr referensi Param2 properti SpeechEventInfo ditentukan secara unik oleh nilai EventId dan ParameterType properti SpeechEventInfo instans.

Untuk informasi terperinci tentang cara menggunakan Param2, lihat dokumentasi untuk EventId.

Berlaku untuk