SpeechEventInfo 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자 지정 합성 음성 엔진에 의해 음성 텍스트 렌더링의 일부로 생성될 이벤트 및 해당 인수(있을 경우)의 형식을 지정하는 데 사용됩니다.
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)
- 상속
- 구현
예제
아래 예제에서 상속 하는 사용자 지정 음성 합성 구현의 일부인 TtsEngineSsml, 및을 사용 하 여 TextFragment, SpeechEventInfo, FragmentState, 및 TtsEventId
구현 Speak
배열을 받습니다 TextFragment 인스턴스 및 새 배열을 만듭니다 TextFragment 전달 되는 인스턴스는
Speak
기본 합성 엔진에서 메서드.경우는 TtsEngineAction 에서 열거형 값에서 찾을 Action 속성에는 FragmentState 반환한를 State 의 각 속성 TextFragment 인스턴스가 Speak, 구현
읽을 텍스트의 Americanism Britishisms 변환 합니다.
경우는 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);
}
설명
사용자 지정 음성 합성 엔진은 SpeechEventInfo AddEvents ITtsEngineSite , 및 구현에 전달 된 엔진 사이트 개체의 멤버에 적절 한 인스턴스를 제공 하 여 음성 플랫폼에서 이벤트 생성을 요청 합니다 Speak AddLexicon RemoveLexicon .
생성자
SpeechEventInfo(Int16, Int16, Int32, IntPtr) |
적절한 SpeechEventInfo를 생성합니다. |
속성
EventId |
요청하기 위해 SpeechEventInfo의 인스턴스를 사용하는 음성 플랫폼 이벤트를 가져와 설정합니다. |
Param1 |
SpeechEventInfo의 현재 인스턴스를 사용하여 요청할 이벤트를 생성하기 위해 음성 플랫폼으로 전달할 |
Param2 |
SpeechEventInfo의 현재 인스턴스를 사용하여 요청할 이벤트를 생성하기 위해 음성 플랫폼으로 전달할 개체를 참조하는 |
ParameterType |
현재 Param2 개체의 SpeechEventInfo 매개 변수에서 반환하는 IntPtr로 가리키는 개체의 데이터 형식을 반환합니다. |
메서드
Equals(Object) |
지정된 개체가 |
Equals(SpeechEventInfo) |
지정된 |
GetHashCode() |
|
연산자
Equality(SpeechEventInfo, SpeechEventInfo) |
|
Inequality(SpeechEventInfo, SpeechEventInfo) |
|