Aracılığıyla paylaş


EventParameterType Sabit listesi

Tanım

Konuşma sentezi olaylarına geçirilen veri işaretçisi türlerini numaralandırır.

public enum class EventParameterType
public enum EventParameterType
type EventParameterType = 
Public Enum EventParameterType
Devralma
EventParameterType

Alanlar

Name Değer Description
Undefined 0

bağımsız değişkeninin param2SpeechEventInfo tanımsız olduğunu gösterir. Genel olarak param1 ve param2 sonra yoksayılır. Ancak, ise EventIdWordBoundarybir ilerleme ölçümü olayı oluşturulabilir. param1 geçerli sözcüğün uzunluğunu içeren bir tamsayı ve param2IntPtr geçerli sözcüğün uzaklığını içeren bir tamsayı olmalıdır.

Token 1

bağımsız değişkenininparam2, ses (VoiceInfo gibi) gibi bir kaynağı temsil eden bir Windows Masaüstü Konuşma Teknolojisi nesnesi olan bir Windows Masaüstü Konuşma Teknolojisi belirtecine başvuran bir kullanılarak oluşturulduğunu SpeechEventInfoIntPtrPtrToStructure gösterir. param1 herhangi bir değer alabilir.

Object 2

Şu anda desteklenmiyor.

Pointer 3

Şu anda desteklenmiyor.

String 4

bağımsız değişkeninin param2 bir System.IntPtr nesneye SpeechEventInfo başvuruda System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni bulunarak oluşturulduğunu; param1 herhangi bir System.String değeri alabileceğini gösterir.

Örnekler

Aşağıdaki örnek, öğesinden TtsEngineSsmldevralınan ve , , SpeechEventInfoFragmentStateve TtsEventIdkullanımını kullanan özel konuşma sentezi uygulamasının TextFragmentbir parçasıdır.

Uygulamasının Speak

  1. Bir örnek dizisi TextFragment alır ve temel alınan sentez altyapısında Speak yöntemine geçirilecek yeni bir örnek dizisi TextFragment oluşturur.

  2. TtsEngineAction Her TextFragment örneğin özelliği tarafından State döndürülen özelliğinde FragmentStateAction bulunan numaralandırma değeri iseSpeak, uygulama

    • Konuşulacak metinde Amerikancılığı İngilizliklere çevirir.

    • EventInterest Uygulamaya sağlanan arabirimlerdeki özelliği ITtsEngineSite olay türünü destekliyorsaWordBoundary, bir SpeechEventInfo sentezleyici ilerleme ölçümünü yönlendirmek için olay oluşturmak için bir örnek kullanılır.

      tarafından döndürülen ParameterTypeüye değeri de dahil olmak üzere EventParameterType üzerindeki SpeechEventInfoparametreleri yöntemi aracılığıyla LogSpeechEvent oluşturulan olayı günlüğe kaydetmek için kullanılır.

  3. Daha sonra değiştirilen dizi ile bir konuşma işleme altyapısı çağrılır 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);

}

Açıklamalar

Sabit EventParameterType listesi, bir SpeechEventInfo nesne oluşturulurken kullanılır. EventParameterType için oluşturucuya parameterTypeSpeechEventInfo bağımsız değişken olarak geçirilen bir numaralandırma üyesi, oluşturucunun bağımsız değişkeninin (bir IntPtrolması gerekir) nasıl param2 yorumlanması gerektiğini belirtir.

seçeneği, öğesinin EventParameterType bir üyesi tarafından belirtildiği gibi istenen olay türüne System.Speech.Synthesis.TtsEngine.TtsEventIdgöre belirlenir.

kullanma EventParameterTypehakkında ayrıntılı bilgi için belgelerine bakın EventId

Uyarı

Şu anda, ad alanının üyeleri kullanılarak yazılmış yönetilen yapay konuşma altyapılarının System.Speech.Synthesis örnekleri, oluşturmadan sonra kaynakları değiştiremez.

Şunlara uygulanır

Ayrıca bkz.