SpeechEventInfo(Int16, Int16, Int32, IntPtr) Конструктор
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает соответствующий объект SpeechEventInfo.
public:
SpeechEventInfo(short eventId, short parameterType, int param1, IntPtr param2);
public SpeechEventInfo (short eventId, short parameterType, int param1, IntPtr param2);
new System.Speech.Synthesis.TtsEngine.SpeechEventInfo : int16 * int16 * int * nativeint -> System.Speech.Synthesis.TtsEngine.SpeechEventInfo
Public Sub New (eventId As Short, parameterType As Short, param1 As Integer, param2 As IntPtr)
Параметры
- eventId
- Int16
Экземпляр TtsEventId, указывающий тип события платформы речи, который должен быть обработан объектом SpeechEventInfo.
- parameterType
- Int16
Экземпляр EventParameterType, показывающий, как ссылка System.IntPtr объекта param2 должна интерпретироваться и, следовательно, как необходимо использовать param1.
- param1
- Int32
Целое число, передаваемое в платформу речи, когда создается событие, запрашиваемое экземпляром конструируемого SpeechEventInfo.
Точный смысл этого целого числа неявно определяется значением parameterType.
- param2
-
IntPtr
nativeint
Экземпляр System.IntPtr, ссылающийся на объект. передаваемое в платформу речи, когда создается событие, запрашиваемое экземпляром конструируемого SpeechEventInfo.
Тип, на который должна указывать ссылка, явно определяется значением parameterType. Значение System.IntPtr.Zero.
Примеры
Приведенный ниже пример является частью пользовательской реализации синтеза речи, наследуемой от TtsEngineSsml , и использования функций TextFragment , SpeechEventInfo , FragmentState и. TtsEventId
Реализация Speak
Получает массив TextFragment экземпляров и создает новый массив TextFragment экземпляров для передачи в
Speakметод базового механизма синтеза.Если TtsEngineAction значение перечисления, найденное в Action свойстве, FragmentState возвращаемом State свойством каждого TextFragment экземпляра Speak , равно, то реализация
Преобразует Американский регион в Бритишисмс текст.
Если EventInterest свойство в ITtsEngineSite интерфейсах, предоставленных для реализации, поддерживает 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);
}
Комментарии
Допустимые значения, используемые для parameterType , и param1 param2 их значение, определяются типом запрашиваемого события, как указано членом, TtsEventId используемым для eventId .
Подробные сведения о соответствующих значениях для parameterType , и см. в param1 param2 документации по EventId
Тип событий, которые могут быть обработаны инфраструктурой платформы обработки речи, можно получить с помощью EventInterest свойства в реализации сайта системы синтезатора ITtsEngineSite .