TtsEventId 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.
Wylicza typy zdarzeń syntezy mowy.
public enum class TtsEventId
public enum TtsEventId
type TtsEventId =
Public Enum TtsEventId
- Dziedziczenie
Pola
AudioLevel | 9 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy zmianę poziomu dźwięku podczas mówienia. |
Bookmark | 4 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy napotyka zakładkę podczas mówienia. |
EndInputStream | 2 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy napotyka koniec strumienia wejściowego podczas mówienia. |
Phoneme | 6 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy fonem podczas mówienia. |
SentenceBoundary | 7 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy zdanie podczas mówienia. |
StartInputStream | 1 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy zaczyna mówić strumieniem. |
Viseme | 8 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy viseme podczas mówienia. |
VoiceChange | 3 | Identyfikuje zdarzenia generowane, gdy aparat syntezowania mowy napotyka zmianę funkcji Voice podczas mówienia. |
WordBoundary | 5 | Identyfikuje zdarzenia generowane, gdy aparat syntezy mowy kończy słowo podczas mówienia. |
Przykłady
Poniższy przykład jest częścią niestandardowej implementacji syntezy mowy dziedziczonej z TtsEngineSsmlklasy , i przy użyciu TextFragmentklas , SpeechEventInfo, FragmentStatei TtsEventId .
Implementacja programu TtsEngineSsml.Speak obejmuje następujące kroki:
Odbiera tablicę TextFragment wystąpień i tworzy nową tablicę TextFragment wystąpień, która ma zostać przekazana do
Speak
metody w podstawowym aucie syntezy.Action Jeśli właściwość każdego TextFragment.State wystąpienia jest równa TtsEngineAction.Speak, kod wykonuje następujące czynności:
Tłumaczy język angielski amerykański na brytyjski angielski w tekście, który ma być używany.
Jeśli właściwość dostarczona ITtsEngineSite.EventInterest do implementacji obsługuje
WordBoundary
typ zdarzenia, SpeechEventInfo wystąpienie jest używane do utworzenia zdarzenia w celu napędzania miernika postępu syntezatora.
Aparat renderowania mowy jest następnie wywoływany za pomocą zmodyfikowanej TextFragment 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
Niestandardowe aparaty syntezy mowy definiują typy zdarzeń przesyłanych do infrastruktury syntezatora platformy mowa za pomocą elementu TtsEventId.
Specyfikacja jest wykonywana przez ustawienie EventId właściwości SpeechEventInfo wystąpień przekazywanych do AddEvents elementu członkowskiego klasy implementowania ITtsEngineSite interfejsu przekazywanego do Speak metody w implementacji aparatu mowy niestandardowej .TtsEngineSsml
Infrastruktura platformy rozpoznawania mowy wskazuje typ zdarzeń, które obecnie obsługuje za pośrednictwem EventInterest właściwości przekazanej ITtsEngineSite do implementacji mowy.
Wartość to maska bitów EventInterest , w której elementy członkowskie TtsEventId definiują lokalizację bitu odpowiadającego typowi zdarzenia. Na przykład element WordBoundary ma wartość pięciu (5), co oznacza, że piąty bit w wartości zwracanej przez EventInterest element wskazuje, czy witryna obsługuje typ zdarzenia.