Aracılığıyla paylaş


SpeechEventInfo.Param1 Özellik

Tanım

integer param1 Geçerli örneğinin istemek için kullanıldığı bir olay oluşturmak üzere konuşma platformuna geçirilecek değeri (oluşturucuda) alır ve ayarlar SpeechEventInfo .

public:
 property int Param1 { int get(); };
public int Param1 { get; }
member this.Param1 : int
Public ReadOnly Property Param1 As Integer

Özellik Değeri

Int32

integerGeçerli örneği tarafından belirtilen olay oluşturulduğunda konuşma platformuna geçirilecek ' i döndürür 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 Param1 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 gereksinimleri ve anlamı, öğesinin Param1 SpeechEventInfo değerleri ve özellikleri tarafından benzersiz şekilde belirlenir EventId ParameterType SpeechEventInfo .

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

Şunlara uygulanır