Aracılığıyla paylaş


SpeechEventInfo(Int16, Int16, Int32, IntPtr) Oluşturucu

Tanım

Uygun bir yapı oluşturur SpeechEventInfo .

public:
 SpeechEventInfo(short eventId, short parameterType, int param1, IntPtr param2);
public SpeechEventInfo (short eventId, short parameterType, int param1, IntPtr param2);
new System.Speech.Synthesis.TtsEngine.SpeechEventInfo : int16 * int16 * int * nativeint -> System.Speech.Synthesis.TtsEngine.SpeechEventInfo
Public Sub New (eventId As Short, parameterType As Short, param1 As Integer, param2 As IntPtr)

Parametreler

eventId
Int16

TtsEventIdNesnenin Işleyeceği konuşma platformu olay sıralamasını belirten bir örnek SpeechEventInfo .

parameterType
Int16

EventParameterType System.IntPtr Başvurusunun nasıl param2 yorumlanacağına ve ' nin nasıl kullanılacağını gösteren bir örnek param1 .

param1
Int32

Oluşturulacak örneği tarafından istenen olay oluşturulduğunda konuşma platformuna geçirilecek bir tamsayı değeri SpeechEventInfo .

Bu tamsayının tam anlamı, değerine göre örtülü olarak belirlenir parameterType .

param2
IntPtr

nativeint

System.IntPtrNesneye başvuran bir örnek. oluşturulacak örneği tarafından istenen olay oluşturulduğunda konuşma platformuna geçirilecek SpeechEventInfo .

Başvurulması gereken tür, açıkça değer tarafından tanımlanır parameterType . Değer System.IntPtr.Zero .

Ö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.

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

, Ve için kullanılan izin verilen değerler, parameterType param1 param2 için kullanılan üyesi tarafından belirtilen şekilde, istenen olay türüne göre belirlenir TtsEventId eventId .

, Ve için uygun değerler hakkında ayrıntılı bilgi için parameterType param1 bkz. param2 belgeleri EventId

Konuşma platformu altyapısı tarafından işlenebilen olayların türü, EventInterest ' nin Birleştirici altyapısı site uygulamasındaki özelliği aracılığıyla elde edilebilir ITtsEngineSite .

Şunlara uygulanır