SpeechEventInfo SpeechEventInfo SpeechEventInfo SpeechEventInfo Struct

Определение

Используется для указания типа события и его аргументов (если таковые имеются), создаваемых в рамках преобразования текста в речь пользовательским механизмом синтезирования речи.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)
Наследование
SpeechEventInfoSpeechEventInfoSpeechEventInfoSpeechEventInfo
Реализации

Примеры

В приведенном ниже примере является частью реализации синтеза настраиваемое преобразование речи, наследование 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. Если TtsEngineAction значение перечисления, найти Action свойство FragmentState возвращаемые State каждого элемента TextFragment экземпляр Speak, реализация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

    • Преобразует Americanism для Britishisms в Произносимый текст.Translates Americanism to Britishisms in the text to be spoken.

    • Если EventInterest свойство ITtsEngineSite интерфейсов, предоставляемых для поддержки реализации WordBoundary тип события, SpeechEventInfo экземпляра используется для создания события на диске будет создана индикатор синтезатора.If 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, и RemoveLexicon.A 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(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr) SpeechEventInfo(Int16, Int16, Int32, IntPtr)

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

Свойства

EventId EventId EventId EventId

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

Param1 Param1 Param1 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 Param2 Param2 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 ParameterType ParameterType 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) Equals(Object) Equals(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) Equals(SpeechEventInfo) Equals(SpeechEventInfo) Equals(SpeechEventInfo)

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

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

Операторы

Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo) Equality(SpeechEventInfo, SpeechEventInfo)

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

Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo) Inequality(SpeechEventInfo, SpeechEventInfo)

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

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