미디어위키:Gadget-TTS.js

리버티게임(개발), 모두가 만들어가는 자유로운 게임
imported>Senouis님의 2020년 12월 28일 (월) 02:29 판 (새 문서: →‎* TTS 지원 * class="speech" (lang="") (data-pitch="") (data-rate="") (data-volume="") * 제작자: [[사용자:hsl0]] *: var voiceSettings = {}; voiceSettings.default = { voic...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
/** TTS 지원
 * class="speech" (lang="") (data-pitch="") (data-rate="") (data-volume="")
 * 제작자: [[사용자:hsl0]]
**/
var voiceSettings = {};
voiceSettings.default = {
	voice: null,
	pitch: 1,
	rate: 1,
	volume: 1
};
function speakSpeech() {
	var ssu, setting;
	
	if(!('notts' in geturlSearch() || window.disableTTS)) Array.from(document.getElementsByClassName('speech')).forEach(function(elem) {
		ssu = new SpeechSynthesisUtterance(elem.innerText);
		
		ssu.lang = elem.lang;
		setting = Object.assign({}, voiceSettings.default, voiceSettings[ssu.lang]);
		if(setting.voice) ssu.voice = setting.voice;
		if(!isNaN(elem.dataset.pitch)) ssu.pitch = setting.pitch * elem.dataset.pitch;
		if(!isNaN(elem.dataset.rate)) ssu.rate = setting.rate * elem.dataset.rate;
		if(!isNaN(elem.dataset.volume)) ssu.volume = setting.volume * elem.dataset.volume;
		
		speechSynthesis.speak(ssu);
	});
}
$(speakSpeech);
/* TTS 끝 */