WAT 커스텀 설정 및 함수 호출 예제

1. 커스텀 초기화 설정

다양한 설정 옵션으로 WAT를 초기화하는 방법을 보여줍니다.

기본 커스텀 설정


watOptions = {
		configPath: '../config.json',

		colorTheme: false,
		toolWidth: 400,
		containerTargetSelector: '#wrap',
		// 도구 예외영역 설정
		excludeSelector: '#navWrap, #codeWrap',
		fontFamily: {
			'Koddi Udon Gothic': {
				enabled: true,
				url: '/assets/fonts/koddi-udon-gothic/koddi-udon-gothic.css'
			},
			'Nanum Pen Script': {
				enabled: true,
				url: 'https://fonts.googleapis.com/css2?family=Nanum+Pen+Script&display=swap'
			}
		},
		// TTS 관련 설정
		ttsSpeechRate: 2.0,		// TTS 읽기 속도 (0.1 ~ 10, 기본값: 1.6)
		ttsAutoAdvanceDelay: 2000,	// 자동 진행 지연시간 (밀리초, 기본값: 1000)

		// 다중 언어에서 기본 언어 지정
		language: { languages: ["ko", "en-US", "ja"]},
		fontSizeOptions: {
			'size-1p2x': false, // 기존 옵션 비활성화
			'size-large': {
				ratio: 2.5,
				label: '매우 큰 글씨',
				enabled: true
			},
			'size-custom': {
				ratio: 1.8,
				label: '사용자 정의 크기'
			}
		}
};
const wat = new WAT(watOptions);
window.watPlugin = wat;
wat.init();

현재 WAT 인스턴스 정보

WAT 인스턴스 상태를 확인 중...

2. TTS (음성 합성) 함수 예제

기본 TTS 함수 호출

// 기본 텍스트 읽기
const utterance = new SpeechSynthesisUtterance('안녕하세요!');
utterance.rate = 2.0;   // 속도
utterance.pitch = 1.0;  // 음높이
utterance.volume = 1.0; // 볼륨
speechSynthesis.speak(utterance);

// 현재 페이지 제목 읽기
speechSynthesis.speak(new SpeechSynthesisUtterance(document.title));

TTS 제어 함수

// TTS 일시정지/재개/중지 (브라우저)
speechSynthesis.pause();
speechSynthesis.resume();
speechSynthesis.cancel();

// TTS 상태 확인 (브라우저)
console.log({
    speaking: speechSynthesis.speaking,
    paused: speechSynthesis.paused
});

3. STT (음성 인식) 함수 예제

음성 인식 제어

음성 인식 결과가 여기에 표시됩니다...
// 음성 명령 시작/중지
window.watPlugin.sttManager.toggleVoiceCommand();

// 상태 확인
document.addEventListener('wat:stt:stateChanged', (event) => {
    console.log(event.detail);
});

4. 포커스 TTS 및 이벤트 처리

포커스 기반 텍스트 읽기

아래 요소들에 포커스를 맞춰보세요 (Tab 키 사용 또는 더블클릭):

// 포커스 TTS 토글
window.watPlugin.ttsManager.toggleFocusTTS();

// 포커스 TTS는 더블클릭/마우스 선택 시 해당 텍스트를 읽습니다.

이벤트 리스너 등록

이벤트 로그가 여기에 표시됩니다...
// WAT 초기화 완료 이벤트
document.addEventListener('wat:initialized', (event) => {
    console.log('WAT 초기화 완료:', event.detail);
});

// TTS 상태 변경 이벤트
document.addEventListener('wat:tts:stateChanged', (event) => {
    console.log('TTS 상태 변경:', event.detail);
});

// STT 상태 변경 이벤트
document.addEventListener('wat:stt:stateChanged', (event) => {
    console.log('STT 상태 변경:', event.detail);
});

// 설정 변경 이벤트
document.addEventListener('wat:settings:changed', (event) => {
    console.log('설정 변경:', event.detail);
});

5. 고급 설정 및 상태 관리

상태 관리 함수

// 전역 상태 확인
const state = customWAT.stateManager.get();
console.log('현재 상태:', state);

// 특정 설정 값 확인
const ttsRate = customWAT.stateManager.get('tts.rate');
console.log('TTS 속도:', ttsRate);

// 설정 업데이트
customWAT.stateManager.update('tts.rate', 1.5);

// 여러 설정 한번에 업데이트
customWAT.stateManager.merge('tts', {
    rate: 1.3,
    pitch: 1.1,
    volume: 0.9
});

에러 처리 및 디버깅

// 에러 처리 리스너 등록
document.addEventListener('wat:error', (event) => {
    console.error('WAT 에러:', event.detail);
});

// 디버그 모드 활성화
customWAT.setDebugMode(true);

// 에러 로그 확인
const errors = customWAT.getErrorLog();
console.log('에러 로그:', errors);