Aracılığıyla paylaş


SpeechEventInfo.ParameterType Özellik

Tanım

IntPtr Param2 Geçerli nesne üzerindeki parametresi tarafından döndürülen nesnesinin gösterdiği nesnenin veri türünü döndürür SpeechEventInfo .

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

Özellik Değeri

Int16

shortNumaralandırma üyesine karşılık gelen EventParameterType ve IntPtr parametresi tarafından döndürülen Param2 ve geçerli nesnenin oluşturucusunun ikinci bağımsız değişkeni olarak kullanılan nesnenin veri türünü belirten bir değer SpeechEventInfo .

Örnekler

Aşağıdaki örnek, ' den devralan özel bir konuşma sen, uygulamasının bir parçasıdır TtsEngineSsml ve,, TextFragment SpeechEventInfo FragmentState ve kullanımını kullanarak TtsEventId

Uygulamasının Speak

  1. Örnek dizisini alır TextFragment ve TextFragment Speak temel alınan bir sensıs altyapısında yönteme geçirilecek yeni bir örnek dizisi oluşturur.

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

    • Americanism, konuşulan metinde Britishisms 'e çevirir.

    • EventInterest ITtsEngineSite Uygulamaya sunulan arayüzlerde bulunan özellik WordBoundary olay türünü destekliyorsa, SpeechEventInfo bir Birleştiricisi oluşturmak için bir olay oluşturmak için bir örnek kullanılır.

      Dahil parametreler, SpeechEventInfo ParameterType yöntemi aracılığıyla oluşturulan olayı günlüğe kaydetmek için kullanılır LogSpeechEvent .

  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

Özelliğinin başvurusu üzerindeki Gereksinimler System.IntPtr Param2 SpeechEventInfo , öğesinin değerlerine ve özelliklerine göre benzersiz şekilde belirlenir EventId ParameterType SpeechEventInfo .

Kullanımı hakkında ayrıntılı bilgi için Param2 belgelerine bakın EventId .

Şunlara uygulanır