EventParameterType 열거형
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
음성 합성 이벤트에 전달되는 데이터 포인터 형식을 열거합니다.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- 상속
필드
Object | 2 | 현재 지원되지 않습니다. |
Pointer | 3 | 현재 지원되지 않습니다. |
String | 4 | SpeechEventInfo에 대한 |
Token | 1 | SpeechEventInfo에 대한 |
Undefined | 0 |
|
예제
다음 예제는 에서 상속하고 , , 및 을 사용하는 사용자 지정 음성 합성 TtsEngineSsml 구현의 TextFragment SpeechEventInfo FragmentState TtsEventId 일부입니다.
구현 Speak
배열을 받습니다 TextFragment 인스턴스 및 새 배열을 만듭니다 TextFragment 전달 되는 인스턴스는
Speak
기본 합성 엔진에서 메서드.경우는 TtsEngineAction 에서 열거형 값에서 찾을 Action 속성에는 FragmentState 반환한를 State 의 각 속성 TextFragment 인스턴스가 Speak, 구현
읽을 텍스트의 Americanism Britishisms 변환 합니다.
경우는 EventInterest 속성에는 ITtsEngineSite 구현 지원 제공 하는 인터페이스를 WordBoundary 이벤트 유형는 SpeechEventInfo 인스턴스 이벤트 신시사이저 진행률 표시기가 만든 드라이브를 만드는 데 사용 됩니다.
매개 변수 SpeechEventInfo를 포함 하 여는 EventParameterType 멤버 값을 반환한 ParameterType를 통해 생성 된 이벤트를 기록 하는 데 사용 되는
LogSpeechEvent
메서드.
이라고 하는 음성 렌더링 엔진이 수정 된 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));
LogSpeechEvent(spEvent.EventId,
spEvent.ParameterType,
spEvent.Param1,
spEvent.Param2);
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);
}
설명
EventParameterType
열거형을 생성할 때 사용 되는 SpeechEventInfo 개체입니다. 에 EventParameterType
대한 생성자에 인수로 전달된 열거형 멤버는 parameterType
SpeechEventInfo param2
생성자(여야 IntPtr 하는)의 인수가 해석되는 방법을 지정합니다.
선택할 EventParameterType
요청 되는 이벤트의 형식에 의해 결정 됩니다의 멤버에 의해 지정 된 대로 System.Speech.Synthesis.TtsEngine.TtsEventId입니다.
를 사용하는 방법에 대한 자세한 내용은 EventParameterType
다음 설명서를 참조하세요. EventId
참고
현재 네임스페이스의 멤버를 사용하여 작성된 관리되는 가상 음성 엔진의 인스턴스는 System.Speech.Synthesis 생성 후 리소스를 변경할 수 없습니다.