Aracılığıyla paylaş


EventParameterType Sabit listesi

Tanım

Konuşma sentezi olaylarının geçir olduğu veri işaretçilerinin türlerini numaralar.

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

Alanlar

Object 2

Şu anda desteklenmiyor.

Pointer 3

Şu anda desteklenmiyor.

String 4

için bağımsız param2 değişkeninin bir nesneye başvurarak oluşturulan bir olduğunu SpeechEventInfo System.IntPtr System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni System.String gösterir; param1 herhangi bir değere sahip olabilir.

Token 1

için bağımsız değişkeninin, bir Windows Masaüstü Konuşma Teknolojisi belirtecsine başvurarak oluşturulmuş olduğunu gösterir. Bu, bir kaynağı temsil eden Windows Masaüstü Konuşma Teknolojisi nesnesidir param2 SpeechEventInfo IntPtr PtrToStructure (ses () VoiceInfo gibi). param1 herhangi bir değere sahip olabilir.

Undefined 0

bağımsız param2 değişkeninin SpeechEventInfo tanımsız olduğunu gösterir. Genellikle ve param1 daha param2 sonra yoksayılır. Ancak, EventId WordBoundary ise, bir ilerleme ölçümü olayı oluşturularak. param1 geçerli sözcüğün uzunluğunu içeren bir tamsayı ve geçerli sözcüğün uzaklığını içeren bir param2 IntPtr tamsayıya başvuran bir tamsayı olmalıdır.

Örnekler

Aşağıdaki örnek, 'den devralınan ve , , ve kullanımını kullanan TtsEngineSsml özel konuşma sentezi TextFragment uygulamasının bir SpeechEventInfo FragmentState TtsEventId parçasıdır.

uygulamasının Speak

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

  2. Her örneğin özelliği tarafından döndürülen özelliğinden bulunan numaralama değeri TtsEngineAction Action FragmentState State TextFragment Speak ise, uygulama

    • Amerikanlığı, konuşulan metinde İngilizliklere çevirir.

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

      üzerinde, SpeechEventInfo tarafından döndürülen EventParameterType üye değeri de dahil olmak üzere ParameterType parametreleri, yöntemiyle oluşturulan olayı günlüğe LogSpeechEvent kaydedilir.

  3. Daha sonra değiştirilen dizi ile bir konuşma işleme altyapısı TextFragment çağrılır.

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

Bir EventParameterType nesnesi oluşturmada enumeration SpeechEventInfo kullanılır. için oluşturucuya bağımsız değişken olarak geçirilen bir numaralama üyesi, oluşturucu (bir olması gereken ) bağımsız değişkeninin EventParameterType parameterType nasıl SpeechEventInfo param2 IntPtr yorumlanması gerektiğini belirtir.

seçimi, bir üyesi tarafından belirtilen istenen olay EventParameterType türüne göre dikte System.Speech.Synthesis.TtsEngine.TtsEventId edilmektedir.

kullanımı hakkında ayrıntılı bilgi EventParameterType için, için belgelere bakın EventId

Not

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

Şunlara uygulanır

Ayrıca bkz.