TextFragment Sınıf
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.
Konuşma sentezleyici altyapısı tarafından tüketilen metin ve konuşma özniteliği bilgilerini içerir.
public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
- Devralma
-
TextFragment
Örnekler
Aşağıdaki örnek, 'den devralınan ve , , ve kullanımını kullanan TtsEngineSsml özel konuşma sentezi TextFragment uygulamasının bir SpeechEventInfo FragmentState TtsEventId parçasıdır.
uygulamasının Speak
Bir örnek dizisi alır ve temel alınan sentez altyapısında yöntemine TextFragment TextFragment geçirilen
Speak
yeni bir örnek dizisi oluşturur.Yeni örneklerde oluşturulurken özgün olan üzerinde , TextOffset ile ilgili olarak özellikle dikkat etmek için TextLength TextFragment TextToSpeak TextFragment kullanılır.
Her örneğin özelliği tarafından döndürülen özelliğinden bulunan numaralama değeri TtsEngineAction Action FragmentState State TextFragment Speak ise, uygulama
Amerikanlığı, konuşulan metinde İngilizliklere çevirir.
Uygulamaya sağlanan arabirimlerde özelliği olay türünü destekliyorsa, bir sentezleyici ilerleme ölçümü oluşturmak için bir olay oluşturmak EventInterest ITtsEngineSite için bir örnek WordBoundary SpeechEventInfo kullanılır.
Daha sonra değiştirilen dizi ile bir konuşma işleme altyapısı TextFragment çağrılır.
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
Konuşma platformu altyapısı, SSML girişinin XML tabanlı yapısının paketini açıp nesneleri TextFragment oluşturur.
Konuşma içeriği, bir örneğin TextLength , ve özellikleri aracılığıyla TextOffset TextToSpeak TextFragment kullanılabilir.
Vurgu, konuşma ve hız gibi konuşma özniteliği bilgileri özelliği tarafından döndürülen FragmentState nesneden TextFragment State elde edilir.
Oluşturucular
TextFragment() |
yeni bir örneği |
Özellikler
State |
için konuşma özniteliği bilgilerini alır veya |
TextLength |
Parçada konuşma metninin uzunluğunu alır veya ayarlar. |
TextOffset |
Parçada metnin başlangıç konumunu alır veya ayarlar. |
TextToSpeak |
Parçanın konuşma metnini alır veya ayarlar. |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |