TextFragment Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Innehåller information om text- och talattribut för förbrukning av en talsyntesmotor.
public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
- Arv
-
TextFragment
Exempel
Exemplet nedan är en del av en anpassad implementering av talsyntes som ärver från TtsEngineSsmloch använder användningen av TextFragment, SpeechEventInfo, FragmentStateoch TtsEventId.
Genomförandet av Speak
Tar emot en matris med TextFragment instanser och skapar en ny matris med TextFragment instanser som ska skickas till
Speakmetoden på en underliggande syntesmotor.Särskild försiktighet används för att respektera TextOffset, TextLength på originalet TextFragment när du skapar TextToSpeak på de nya TextFragment instanserna.
TtsEngineAction Om uppräkningsvärdet som hittas från Action egenskapen på den FragmentState som returneras av egenskapen för State varje TextFragment instans är , är Speakimplementeringen
Översätter amerikanismen till britishismer i texten som ska talas.
EventInterest Om egenskapen på de ITtsEngineSite gränssnitt som tillhandahålls till implementeringen stöder WordBoundary händelsetypen, används en SpeechEventInfo instans för att skapa en händelse för att köra en synthesizer-förloppsmätare skapas.
En talrenderingsmotor anropas sedan med den ändrade TextFragment matrisen.
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);
}
Kommentarer
Infrastrukturen för Speech-plattformen packar upp den XML-baserade strukturen för SSML-indata och konstruerar TextFragment objekt.
Talinnehåll är tillgängligt via TextLengthegenskaperna , TextOffsetoch TextToSpeak för en TextFragment instans.
Information om talattribut, till exempel betoning, tonhöjd och hastighet, hämtas från objektet FragmentState som returneras av TextFragmentState egenskapen.
Konstruktorer
| Name | Description |
|---|---|
| TextFragment() |
Konstruerar en ny instans av |
Egenskaper
| Name | Description |
|---|---|
| State |
Hämtar eller anger information om talattribut för en |
| TextLength |
Hämtar eller anger längden på taltexten i fragmentet. |
| TextOffset |
Hämtar eller anger startplatsen för texten i fragmentet. |
| TextToSpeak |
Hämtar eller anger taltexten i fragmentet. |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |