TextFragment Класс

Определение

Содержит сведения о атрибутах текста и речи для потребления подсистемой синтезатора речи.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
Наследование
TextFragment

Примеры

Приведенный ниже пример является частью пользовательской реализации синтеза речи, наследуемой от TtsEngineSsml, а также использования , TextFragmentSpeechEventInfoи .FragmentStateTtsEventId

Реализация Speak

  1. Получает массив TextFragment экземпляров и создает новый массив экземпляров, передаваемый TextFragmentSpeak методу в базовом подсистеме синтеза.

    Особое внимание используется для уважения TextOffsetTextLength исходного TextFragment значения при создании TextToSpeak новых TextFragment экземпляров.

  2. TtsEngineAction Если значение перечисления, найденное из Action свойстваFragmentState, возвращаемого State свойством каждого TextFragment экземпляра, является Speakреализацией.

    • Преобразует американизм в британизм в тексте, который следует говорить.

    • EventInterest Если свойство в ITtsEngineSite интерфейсах, предоставленных реализации, поддерживает WordBoundary тип события, SpeechEventInfo экземпляр используется для создания события для управления счетчиком хода выполнения синтезатора.

  3. Затем модуль отрисовки речи вызывается с измененным 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);

}

Комментарии

Инфраструктура платформы "Речь" распаковывает структуру на основе XML входных данных SSML и создает TextFragment объекты.

Содержимое речи доступно через TextLengthи TextOffsetTextToSpeak свойства экземпляраTextFragment.

Сведения о атрибуте речи, такие как выделение, шаг и скорость, получаются из FragmentState объекта, возвращаемого свойством TextFragmentState .

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

Имя Описание
TextFragment()

Создает новый экземпляр TextFragment.

Свойства

Имя Описание
State

Возвращает или задает сведения о атрибуте речи для атрибута TextFragment.

TextLength

Возвращает или задает длину текста речи в фрагменте.

TextOffset

Возвращает или задает начальную папку текста в фрагменте.

TextToSpeak

Возвращает или задает текст речи фрагмента.

Методы

Имя Описание
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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