JavaScript(TypeScript)를 이용하여 Text를 Voice로 변환하는 방법을 알아보도록 하겠습니다.
다른 라이브러리를 사용하지 않고 구현이 가능합니다.
코드는 TypeScript로 구현하겠습니다.
TTS 구현
const onSpeakToText = (text: string) => {
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'ko-KR';
window.speechSynthesis.speak(utterance);
}
text를 한국어로 읽어주는 함수를 구현하였습니다.
TTS 속도 조절하기
읽는 속도를 빠르게 또는 느리게 조절도 가능합니다.
const onSpeakToText = (text: string, rate: number) => {
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = 'ko-KR';
utterance.rate = rate;
window.speechSynthesis.speak(utterance);
}
위 rate 값을 1미만으로 주면 느리게, 1초과로 주면 빠르게 읽어줍니다.
TTS 다른 언어 사용하기
한국어 외 다른 언어로 텍스트를 읽도록 할 수 있습니다.
현재 함수에는 lang 값이 'ko-KR'로 고정이 되어 있는데 이 값을 변경해주면 됩니다.
어떠한 값을 넣을 수 있는 지 확인하는 방법은 간단합니다.
const synth = window.speechSynthesis;
console.log(synth.getVoices())
위 코드를 실행하면 실행 가능한 voices를 얻을 수 있습니다.
여기에 있는 lang 값을 확인하여 넣으시면 됩니다.
const onSpeakToText = (text: string, rate: number, lang: string) => {
const utterance = new SpeechSynthesisUtterance(text);
utterance.lang = lang;
utterance.rate = rate;
window.speechSynthesis.speak(utterance);
}
결론
간단하게 text를 읽어주는 onSpeakToText 함수를 구현해보았습니다.
라이브러리를 사용하지 않고 쉽게 구현이 가능합니다.
위에서 최종적으로 구현한 함수는 확장성이 없습니다. 실제로 사용하실 때는 함수 오버로딩을 이용하여 여러 args를 받을 수 있도록 수정하면 좋을 것 같습니다.
반응형
'공유 > JavaScript, TypeScript' 카테고리의 다른 글
[dayjs] DayJS를 이용하여 날짜 다루기 (0) | 2024.08.22 |
---|---|
[JS/TS] 서아라비아, 동아라비아 숫자 변환하기 (0) | 2024.08.02 |
[JavaScript] 만 나이 계산하는 방법 (0) | 2024.07.10 |
[JavaScript] 배열 리스트를 객체로 그룹화 하는 방법 (0) | 2024.07.02 |
[JavaScript] 불변성을 유지하며 배열 특정 인덱스 요소 변경하기 (0) | 2024.07.02 |