TextFragment Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Bevat informatie over tekst- en spraakkenmerken voor gebruik door een spraaksynthese-engine.
public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
- Overname
-
TextFragment
Voorbeelden
Het onderstaande voorbeeld maakt deel uit van een aangepaste spraaksynthese-implementatie die wordt overgenomen van TtsEngineSsml, en het gebruik van TextFragment, SpeechEventInfoen FragmentState.TtsEventId
De implementatie van Speak
Hiermee ontvangt u een matrix met TextFragment exemplaren en maakt u een nieuwe matrix met TextFragment exemplaren die moeten worden doorgegeven aan de
Speakmethode op een onderliggende synthese-engine.Bijzondere zorg wordt gebruikt om de TextOffset, TextLength op het origineel TextFragment te respecteren bij het maken van de TextToSpeak nieuwe TextFragment exemplaren.
Als de TtsEngineAction opsommingswaarde op basis van de Action eigenschap op de FragmentState geretourneerde State eigenschap van elke TextFragment instantie is, is Speakde implementatie
Vertaalt Americanisme in Britishismen in de tekst die moet worden gesproken.
Als de EventInterest eigenschap op de ITtsEngineSite interfaces die zijn opgegeven voor de implementatie het WordBoundary gebeurtenistype ondersteunt, wordt er een SpeechEventInfo exemplaar gebruikt om een gebeurtenis te maken om een synthesizervoortgangsmeter aan te sturen.
Vervolgens wordt een spraakrenderingsengine aangeroepen met de gewijzigde TextFragment matrix.
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);
}
Opmerkingen
Met de infrastructuur van het Speech-platform wordt de xml-structuur van de SSML-invoer uitgepakt en worden objecten samengesteld TextFragment .
Spraakinhoud is beschikbaar via de TextLength, TextOffseten TextToSpeak eigenschappen van een TextFragment exemplaar.
Informatie over spraakkenmerken, zoals nadruk, toonhoogte en snelheid, worden verkregen van het FragmentState object dat door de TextFragmentState eigenschap wordt geretourneerd.
Constructors
| Name | Description |
|---|---|
| TextFragment() |
Maakt een nieuw exemplaar van |
Eigenschappen
| Name | Description |
|---|---|
| State |
Hiermee wordt informatie over spraakkenmerken opgehaald of ingesteld voor een |
| TextLength |
Hiermee haalt u de lengte van de spraaktekst in het fragment op of stelt u deze in. |
| TextOffset |
Hiermee haalt u de beginlocatie van de tekst in het fragment op of stelt u deze in. |
| TextToSpeak |
Hiermee haalt u de spraaktekst van het fragment op of stelt u deze in. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |