TtsEventId Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перечисляет типы событий синтеза речи.
public enum class TtsEventId
public enum TtsEventId
type TtsEventId =
Public Enum TtsEventId
- Наследование
Поля
| Имя | Значение | Описание |
|---|---|---|
| StartInputStream | 1 | Идентифицирует события, созданные при синтезе речи подсистемы, начинающейся с потока. |
| EndInputStream | 2 | Идентифицирует события, создаваемые при обнаружении обработчика синтеза речи в конце входного потока при разговоре. |
| VoiceChange | 3 | Идентифицирует события, создаваемые, когда подсистема синтеза речи обнаруживает изменение голоса при разговоре. |
| Bookmark | 4 | Идентифицирует события, создаваемые при обнаружении подсистемы синтеза речи, закладки при разговоре. |
| WordBoundary | 5 | Идентифицирует события, созданные, когда подсистема синтезирования речи завершает слово во время речи. |
| Phoneme | 6 | Идентифицирует события, создаваемые при выполнении обработчика синтеза речи во время выступления. |
| SentenceBoundary | 7 | Идентифицирует события, создаваемые при выполнении предложения подсистемой синтеза речи. |
| Viseme | 8 | Идентифицирует события, создаваемые при выполнении обработчика синтеза речи во время выступления. |
| AudioLevel | 9 | Идентифицирует события, созданные при завершении изменения уровня звука при разговоре подсистемы синтеза речи. |
Примеры
Следующий пример является частью пользовательской реализации синтеза речи, наследуемой от TtsEngineSsml, и использования TextFragmentклассов , SpeechEventInfoFragmentStateи TtsEventId классов.
TtsEngineSsml.Speak Реализация включает следующие действия.
Получает массив TextFragment экземпляров и создает новый массив экземпляров, передаваемый TextFragment
Speakметоду в базовом подсистеме синтеза.Action Если свойство каждого TextFragment.State экземпляра равноTtsEngineAction.Speak, код выполняет следующее:
Перевод американского английского на британский английский язык в тексте, который будет говориться.
ITtsEngineSite.EventInterest Если свойство, предоставленное реализации, поддерживает
WordBoundaryтип события, SpeechEventInfo экземпляр используется для создания события для управления счетчиком хода выполнения синтезатора.
Затем модуль отрисовки речи вызывается с измененным TextFragment массивом.
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);
}
Комментарии
Пользовательские подсистемы синтеза речи определяют типы событий, отправленных в инфраструктуру синтезатора службы "Речь" с TtsEventIdпомощью подсистемы синтезатора речи.
Спецификация выполняется путем задания EventId свойства SpeechEventInfo экземпляров, передаваемых члену класса, реализующего ITtsEngineSite интерфейс, переданный SpeakAddEvents методу в реализации пользовательского TtsEngineSsmlмодуля речи.
Инфраструктура платформы "Речь" указывает тип событий, которые в настоящее время обрабатываются через EventInterest свойство ITtsEngineSite , переданное в реализацию речи.
Значением EventInterest является битовая маска, в которой члены TtsEventId определяют расположение бита, соответствующего типу события. Например, WordBoundary имеет значение 5 (5), то есть пятый бит в возвращаемом значении EventInterest указывает, поддерживает ли сайт тип события.