Aracılığıyla paylaş


SpeechEventInfo Yapı

Tanım

Özel bir yapay konuşma altyapısı tarafından metin okuma işleminin bir parçası olarak oluşturulacak olay türünü ve bağımsız değişkenlerini (varsa) belirtmek için kullanılır.

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)
Devralma
SpeechEventInfo
Uygulamalar

Örnekler

Aşağıdaki örnek, 'den TtsEngineSsmldevralan ve , SpeechEventInfo, FragmentStateve kullanımını kullanan özel konuşma sentezi uygulamasının TextFragmentbir parçasıdırTtsEventId

Uygulamasının Speak

  1. Bir TextFragment dizi örneği alır ve temel alınan sentez altyapısında yöntemine Speak 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ğinden FragmentStateAction bulunan numaralandırma değeri iseSpeak, uygulama

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

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

  3. Ardından değiştirilen diziyle 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));  
        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

Özel konuşma sentezi altyapısı, , ve RemoveLexiconuygulamalarına geçirilen altyapı sitesi nesnesinin ITtsEngineSite üyesine AddEvents uygun SpeechEventInfo bir örnek sağlayarak Konuşma Platformu altında olayların oluşturulmasını istemektedirSpeakAddLexicon.

Oluşturucular

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Uygun SpeechEventInfobir oluşturur.

Özellikler

EventId

Bir örneğinin SpeechEventInfo istekte bulunmak için kullanıldığı Konuşma platformu olayını alır ve ayarlar.

Param1

Geçerli örneğinin integerSpeechEventInfo istekte bulunmak için kullanıldığı bir olay oluşturmak için Konuşma platformuna geçirilecek değeri (param1oluşturucuda) alır ve ayarlar.

Param2

Konuşma platformuna System.IntPtr geçirilecek nesneye başvuran örneği (param2 oluşturucuda) alır ve ayarlar ve geçerli örneğinin SpeechEventInfo istekte bulunmak için kullanıldığı bir olay oluşturur.

ParameterType

Geçerli SpeechEventInfo nesnedeki parametresi tarafından döndürülen tarafından IntPtr işaret edilen nesnenin Param2 veri türünü döndürür.

Yöntemler

Equals(Object)

Belirtilen nesnenin öğesinin bir örneği SpeechEventInfo olup olmadığını ve geçerli örneğine SpeechEventInfoeşit olup olmadığını belirler.

Equals(SpeechEventInfo)

Belirtilen SpeechEventInfo nesnenin geçerli örneğine SpeechEventInfoeşit olup olmadığını belirler.

GetHashCode()

Bir nesne için SpeechEventInfo karma kod sağlar.

İşleçler

Equality(SpeechEventInfo, SpeechEventInfo)

İki örneğinin SpeechEventInfo eşit olup olmadığını belirler.

Inequality(SpeechEventInfo, SpeechEventInfo)

İki örneğinin SpeechEventInfo eşit olup olmadığını belirler.

Şunlara uygulanır