TtsEngineAction Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa akcję Języka znaczników syntezy mowy (SSML), która ma zostać podjęta w renderowaniu danego TextFragment
elementu .
public enum class TtsEngineAction
public enum TtsEngineAction
type TtsEngineAction =
Public Enum TtsEngineAction
- Dziedziczenie
Pola
Bookmark | 3 | Wskazuje, że TextFragment ma być używana jako zawartość zakładki. Odpowiada |
ParseUnknownTag | 7 | Wskazuje, że nie określono żadnej akcji z danych wejściowych SSML. Te dane wejściowe, które mogą być interpretowane lub ignorowane według uznania aparatu syntezy. Skojarzony TextFragment jest nieznany tag XML, który nie jest częścią standardu SSML. |
Pronounce | 2 | Żądania interpretacji tekstu wejściowego TextFragment jako fonezy. Dokładna wymowa jest określana przez Phoneme element członkowski FragmentState obiektu zwróconego przez State właściwość w TextFragment wystąpieniach. Odpowiada tagowi |
Silence | 1 | Wskazuje, że TextFragment tekst nie ma być renderowany jako mowa. Czas trwania ciszy jest określony przez Duration właściwość FragmentState obiektu zwróconego przez State właściwość w TextFragment wystąpieniach. Odpowiada tagowi |
Speak | 0 | Żądania, które skojarzone z nim TextFragment powinny być przetwarzane i mówione. Jest to wartość domyślna elementu TextFragment. Odpowiada tagowi |
SpellOut | 4 | Wskazuje, że wartości tekstowe dostarczane przez TextFragment właściwość TextToSpeak mają być syntetyzowane jako poszczególne znaki. Renderowanie to obejmuje znaki interpunkcyjne, inne niż białe znaki, a także tekst alfanumeryczny. Na przykład skojarzony fragment tekstu "word!" należy syntetyzować do "w o r d wykrzyknik". |
StartParagraph | 6 | Wskazuje stan akapitu. Odpowiada tagowi |
StartSentence | 5 | Wskazuje początek zdania. Odpowiada |
Przykłady
Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczonej z TtsEngineSsml, i przy użyciu funkcji TextFragment, FragmentStatei TtsEventId
Implementacja Speak
Odbiera tablicę TextFragment wystąpień i tworzy nową tablicę TextFragment wystąpień, która ma zostać przekazana do metody w
Speak
podstawowym aucie syntezy.TtsEngineAction Jeśli wartość wyliczenia znaleziona z Action właściwości FragmentState zwróconej przez State właściwość każdego TextFragment wystąpienia to Speak, implementacja
Tłumaczy amerykanizm na Brytyjczyków w tekście, który ma być wypowiadany.
EventInterest Jeśli właściwość w interfejsie dostarczonym ITtsEngineSite do implementacji obsługuje TtsEventId.WordBoundary typ zdarzenia, zostanie utworzone zdarzenie służące do napędzania miernika postępu syntetyzatora.
Aparat renderowania mowy jest następnie wywoływany TextFragment za pomocą zmodyfikowanej tablicy.
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);
}
Uwagi
TtsEngineAction
reprezentuje żądania obsługi .TextFragment Akcje odpowiadają ściśle elementom w specyfikacji SSML i są implementowane w tekście zwracanym przez TextToSpeak właściwość na TextFragmentobiekcie .
Wartość TtsEngineAction skojarzona z elementem TextFragment jest zwracana przez State właściwość .
TtsEngineAction Przetwarzanie wartości zwracanej przez State właściwość jest obsługiwane przez mowę syntetyzuje implementację Speak metody w klasie pochodzącej z TtsEngineSsmlklasy .