SpeechEventInfo Struktur

Definisi

Digunakan untuk menentukan jenis peristiwa, dan argumennya (jika ada) yang akan dihasilkan sebagai bagian dari penyajian teks ke ucapan oleh mesin ucapan sintetis kustom.

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)
Warisan
SpeechEventInfo
Penerapan

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.

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

Mesin sintesis ucapan kustom meminta pembuatan peristiwa di bawah Platform Ucapan dengan memberikan instans yang sesuai SpeechEventInfo kepada AddEvents anggota ITtsEngineSite objek situs mesin yang diteruskan ke implementasi Speak, AddLexicon, dan RemoveLexicon.

Konstruktor

Nama Deskripsi
SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Membangun SpeechEventInfo.

Properti

Nama Deskripsi
EventId

Mendapatkan dan mengatur peristiwa platform Ucapan tempat instans SpeechEventInfo digunakan untuk meminta.

Param1

Mendapatkan dan mengatur integer nilai (param1 dalam konstruktor) untuk diteruskan ke platform Ucapan untuk menghasilkan peristiwa yang digunakan instans SpeechEventInfo saat ini untuk meminta.

Param2

Mendapatkan dan mengatur System.IntPtr instans (param2 dalam konstruktor) yang merujuk objek yang akan diteruskan ke platform Ucapan untuk menghasilkan peristiwa yang digunakan instans SpeechEventInfo saat ini untuk meminta.

ParameterType

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

Metode

Nama Deskripsi
Equals(Object)

Menentukan apakah objek yang ditentukan adalah instans dan SpeechEventInfo sama dengan instans saat ini dari SpeechEventInfo.

Equals(SpeechEventInfo)

Menentukan apakah objek yang ditentukan SpeechEventInfo sama dengan instans saat ini dari SpeechEventInfo.

GetHashCode()

Menyediakan kode hash untuk SpeechEventInfo objek.

Operator

Nama Deskripsi
Equality(SpeechEventInfo, SpeechEventInfo)

Menentukan apakah dua instans SpeechEventInfo sama.

Inequality(SpeechEventInfo, SpeechEventInfo)

Menentukan apakah dua instans SpeechEventInfo tidak sama.

Berlaku untuk