SpeechEventInfo Структура

Определение

Используется для указания типа события и его аргументов (если таковые имеются), создаваемых в рамках преобразования текста в речь пользовательским механизмом синтезирования речи.Used to specify the type of event, and its arguments (if any) to be generated as part of the rendering of text to speech by a custom synthetic speech engine.

public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
Наследование
SpeechEventInfo
Реализации

Примеры

Приведенный ниже пример является частью пользовательской реализации TtsEngineSsmlсинтеза речи, наследуемой от, и TextFragmentиспользования функций, SpeechEventInfo, FragmentStateи.TtsEventIdThe example below is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, SpeechEventInfo, FragmentState, and TtsEventId

РеализацияSpeakThe implementation of Speak

  1. Получает массив TextFragment экземпляров и создает новый TextFragment массив экземпляров Speak для передачи в метод базового механизма синтеза.Receives an array of TextFragment instances and creates a new array of TextFragment instances to be passed to the Speak method on an underlying synthesis engine.

  2. TextFragment FragmentState Action State SpeakЕсли значение TtsEngineAction перечисления, найденное в свойстве, возвращаемом свойством каждого экземпляра, равно, то реализацияIf the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • Преобразует Американский регион в Бритишисмс текст.Translates Americanism to Britishisms in the text to be spoken.

    • Если свойство в интерфейсах, предоставленных WordBoundary для реализации, поддерживает тип события, то SpeechEventInfo экземпляр используется для создания события для создания счетчика хода выполнения синтезатора. ITtsEngineSite EventInterestIf the EventInterest property on the ITtsEngineSite interfaces provided to the implementation support the WordBoundary event type, a SpeechEventInfo instance is used to create an event to drive a synthesizer progress meter is created.

  3. Затем модуль рендеринга речи вызывается с измененным TextFragment массивом.A speech rendering engine is then called with the modified TextFragment array.

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);  
  
}  

Комментарии

Пользовательский модуль синтеза речи запрашивает создание событий на платформе речи, предоставляя соответствующий SpeechEventInfo AddEvents экземпляр члену ITtsEngineSite объекта сайта Speakобработчика, переданного в реализации. AddLexiconи .RemoveLexiconA custom speech synthesis engine requests the generation of events under the Speech Platform by providing an appropriate SpeechEventInfo instance to AddEvents member of the ITtsEngineSite engine site object passed to implementations of Speak, AddLexicon, and RemoveLexicon.

Конструкторы

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Создает соответствующий объект SpeechEventInfo.Constructs an appropriate SpeechEventInfo.

Свойства

EventId

Получает и задает событие платформы речи, для запроса которого используется текущий экземпляр SpeechEventInfo.Gets and set the Speech platform event which an instance of SpeechEventInfo is used to request.

Param1

Получает и задает значение integer (param1 в конструкторе), передаваемое платформе речи для создания события, для запроса которого используется текущий экземпляр SpeechEventInfo.Gets and set the integer value (param1 in the constructor) to be passed to the Speech platform to generate an event the current instance of SpeechEventInfo is used to request.

Param2

Получает и задает экземпляр System.IntPtr (param2 в конструкторе), который ссылается на объект, передаваемый платформе речи для создания события, для запроса которого используется текущий экземпляр SpeechEventInfo.Gets and set the System.IntPtr instance (param2 in the constructor) referencing the object to be passed to the Speech platform to generate an event the current instance of SpeechEventInfo is used to request.

ParameterType

Возвращает тип данных объекта, на который указывает IntPtr, возвращенный параметром Param2 в текущем объекте SpeechEventInfo.Returns the data type of the object pointed to by the IntPtr returned by the Param2 parameter on the current SpeechEventInfo object.

Методы

Equals(Object)

Определяет, является ли указанный объект экземпляром SpeechEventInfo и равен ли он текущему экземпляру SpeechEventInfo.Determines whether a specified object is an instance of SpeechEventInfo and equal to the current instance of SpeechEventInfo.

Equals(SpeechEventInfo)

Определяет, равен ли указанный объект SpeechEventInfo текущему экземпляру SpeechEventInfo.Determines whether a specified SpeechEventInfo object is equal to the current instance of SpeechEventInfo.

GetHashCode()

Предоставляет хэш-код для объекта SpeechEventInfo.Provides a hash code for a SpeechEventInfo object.

Операторы

Equality(SpeechEventInfo, SpeechEventInfo)

Определяет, равны ли два экземпляра класса SpeechEventInfo.Determines whether two instances of SpeechEventInfo are equal.

Inequality(SpeechEventInfo, SpeechEventInfo)

Определяет, различаются ли два экземпляра SpeechEventInfo.Determines whether two instances of SpeechEventInfo are not equal.

Применяется к