TextFragment 클래스

정의

음성 신시사이저 엔진에서 사용할 텍스트 및 음성 특성 정보를 포함합니다.Contains text and speech attribute information for consumption by a speech synthesizer engine.

public ref class TextFragment
public class TextFragment
type TextFragment = class
Public Class TextFragment
상속
TextFragment

예제

아래 예제에서 상속 하는 사용자 지정 음성 합성 구현의 일부인 TtsEngineSsml, 및 사용을 사용 하 여 TextFragmentSpeechEventInfoFragmentState, 및 TtsEventId합니다.The 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.

    TextOffset TextLength TextFragment 새 인스턴스에서를 만들 때 원래에서를 적용 하는 데 특히 주의 해야 합니다 TextToSpeak TextFragment .Particular care is used to respect the TextOffset, TextLength on the original TextFragment when creating the TextToSpeak on the new TextFragment instances.

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

}  

설명

음성 플랫폼 인프라는 SSML 입력의 XML 기반 구조를 압축 하 고 개체를 생성 TextFragment 합니다.The Speech platform infrastructure unpacks the XML based structure of the SSML input and constructs TextFragment objects.

TextLength인스턴스의, 및 속성을 통해 음성 콘텐츠를 사용할 수 있습니다 TextOffset TextToSpeak TextFragment .Speech content is available through the TextLength, TextOffset, and TextToSpeak properties of a TextFragment instance.

음성 특성 정보 (예: 강조, 피치 및 요율)는 속성에서 반환 되는 FragmentState 개체에서 가져옵니다 TextFragment State .Speech attribute information, such as emphasis, pitch, and rate, are obtained from the FragmentState object returned by the TextFragmentState property.

생성자

TextFragment()

TextFragment의 새 인스턴스를 생성합니다.Constructs a new instance of TextFragment.

속성

State

TextFragment를 위한 음성 특성 정보를 가져오거나 설정합니다.Gets or sets speech attribute information for a TextFragment.

TextLength

해당 조각의 음성 텍스트 길이를 가져오거나 설정합니다.Gets or sets the length of the speech text in the fragment.

TextOffset

조각에서 텍스트의 시작 길이를 가져오거나 설정합니다.Gets or sets the starting location of the text in the fragment.

TextToSpeak

해당 조각의 음성 텍스트를 가져오거나 설정합니다.Gets or sets the speech text of the fragment.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

적용 대상