SpeechEventInfo Yapı
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ö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
- Uygulamalar
Örnekler
Aşağıdaki örnek, öğesinden TtsEngineSsmldevralınan ve , SpeechEventInfo, FragmentStateve kullanımını kullanan özel konuşma sentezi uygulamasının TextFragmentbir parçasıdır.TtsEventId
Uygulamasının Speak
Bir örnek dizisi TextFragment alır ve temel alınan sentez altyapısında
Speakyöntemine geçirilecek yeni bir örnek dizisi TextFragment oluşturur.TtsEngineAction Her TextFragment örneğin özelliği tarafından State döndürülen özelliğinde FragmentStateAction bulunan numaralandırma değeri iseSpeak, uygulama
Konuşulacak metinde Amerikancılığı İngilizliklere çevirir.
EventInterest Uygulamaya sağlanan arabirimlerdeki özelliği ITtsEngineSite olay türünü destekliyorsaWordBoundary, bir SpeechEventInfo sentezleyici ilerleme ölçümünü yönlendirmek için olay oluşturmak için bir örnek kullanılır.
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
Ö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
| Name | Description |
|---|---|
| SpeechEventInfo(Int16, Int16, Int32, IntPtr) |
Uygun SpeechEventInfobir oluşturur. |
Özellikler
| Name | Description |
|---|---|
| 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 |
| Param2 |
Geçerli örneğin istekte |
| 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
| Name | Description |
|---|---|
| Equals(Object) |
Belirtilen nesnenin öğesinin |
| Equals(SpeechEventInfo) |
Belirtilen |
| GetHashCode() |
Bir nesne için |
İşleçler
| Name | Description |
|---|---|
| Equality(SpeechEventInfo, SpeechEventInfo) |
İki örneğinin |
| Inequality(SpeechEventInfo, SpeechEventInfo) |
İki örneğinin |