API 문서»
이 프로젝트는 대부분의 주요 브라우저에서 Web Speech API 의 합성 부분을 실행하는 데 어려움을 겪기 때문에 만들어졌습니다.
speechSynthesis 사용하기위한 단일 APIEasySpeech.debug 후크를 통한 내부 로깅참고 : 대상 브라우저가 음성 합성 또는 웹 음성 API를 지원하지 않는 경우이 패키지는 사용할 수 없습니다.
라이브 데모는 https://leaonline.github.io/easy-speech/에서 사용할 수 있습니다.이를 사용하여 speechSynthesis 지원 및 기능에 대한 브라우저를 테스트 할 수 있습니다.

DOCTOC로 생성 된 목차
NPM에서 설치하십시오
$ npm install easy-speech 다른 대상에 대한 다양한 빌드를 사용할 수도 있습니다. dist 폴더를 참조하십시오.
/dist/EasySpeech.js -esm/dist/EasySpeech.cjs.js -commonjs/dist/EasySpeech.es5.js 레거시 노드 호환/dist/EasySpeech.iife.js 레거시 호환 빌드는 약속을 지원하는 한 오래되거나 이국적인 브라우저에서도 작동합니다 (PRS는 콜백으로 변환 할 수 있습니다!)/dist/index.d.ts TypeScript 유형 정의CDN을 통해 사용할 수 있습니다.
<!-- esm -->
< script type =" module " >
import easySpeech from 'https://cdn.jsdelivr.net/npm/easy-speech/+esm'
</ script > <!-- classic -->
< script src =" https://cdn.jsdelivr.net/npm/easy-speech/dist/EasySpeech.iife.js " > </ script > EasySpeech 가져 오기 및 먼저 브라우저가 tts (텍스트 to speech)가 가능하는 경우 :
import EasySpeech from 'easy-speech'
EasySpeech . detect ( )다음 정보가있는 객체를 반환합니다.
{
speechSynthesis : SpeechSynthesis | undefined ,
speechSynthesisUtterance : SpeechSynthesisUtterance | undefined ,
speechSynthesisVoice : SpeechSynthesisVoice | undefined ,
speechSynthesisEvent : SpeechSynthesisEvent | undefined ,
speechSynthesisErrorEvent : SpeechSynthesisErrorEvent | undefined ,
onvoiceschanged : Boolean ,
onboundary : Boolean ,
onend : Boolean ,
onerror : Boolean ,
onmark : Boolean ,
onpause : Boolean ,
onresume : Boolean ,
onstart : Boolean
} 적어도 SpeechSynthesis 와 SpeechSynthesisUtterance 가 정의되면 당신은 가기에 좋습니다.
모든 것을 준비하는 모든 것을 준비하는 것은 특히 브라우저 크로스 기능을 타겟팅 할 때 필요한만큼 명확하지 않습니다. 비동기 INT 기능은이 상황에 도움이됩니다.
EasySpeech . init ( { maxTimeout : 5000 , interval : 250 } )
. then ( ( ) => console . debug ( 'load complete' ) )
. catch ( e => console . error ( e ) ) Init-Routine은 여러 단계를 거쳐 환경을 설정합니다.
onvoiceschanged 사용할 수 있습니다. onvoiceschanged 사용하십시오onvoiceschanged 사용할 수없는 경우 : 타임 아웃으로의 폴백onvoiceschanged 발사되었지만 사용할 수있는 목소리가없는 경우 : 타임 아웃으로의 폴백maxTimeout 에 도달 할 때까지 주어진 interval 으로 음성을 다시로드합니다.시작 라우팅이 여전히 목소리를 감지 /로드하지 않은 경우, SpeechSynth가 지원됩니다.
목소리가 발견되면 다음 규칙에 따라 폴백 음성을 표시합니다.
default 속성이 True로 설정된 모든 음성 사이에 음성이있는 경우 이것을 Fallback Voice로 사용하십시오.navigator.language 의 첫 번째 일치하는 음성을 찾으십시오 참고 :이 폴백 음성은 EasySpeech.defaults() 에 의해 재정의되지 않으며, 기본 음성은 유리하게 사용되지만 EasySpeech.speak() 호출 할 때 음성을 찾을 수없는 경우 낙하 음성이 항상 있습니다.
이것은 얻는 것만 큼 쉽습니다.
await EasySpeech . speak ( {
text : 'Hello, world!' ,
voice : myLangVoice , // optional, will use a default or fallback
pitch : 1 ,
rate : 1 ,
volume : 1 ,
// there are more events, see the API for supported events
boundary : e => console . debug ( 'boundary reached' )
} ) 약속은 오류가 발생하면 말하기가 끝나거나 거부 될 때 자동으로 해결됩니다. EasySpeech.on 좋아하거나 사용하는 경우이 이벤트 리스너를 추가로 첨부하여 EasySpeech.speak 호출 할 때마다 기본 리스너를 첨부 할 수 있습니다.
일반적인 문제를 돕는 것을 목표로하는 자체 FAQ 섹션이 있습니다.
API DOCS를 사용할 수있는 전체 API 문서가 있습니다
모든 기여는 환영받습니다. 예상대로 작동하지 않으면 문제를 열어주십시오.
코드를 기여하려면 기여에 대한 지침을 읽으십시오.
이 프로젝트는 몇 가지 리소스를 사용하여 최고의 크로스 브라우저 Speechsynthesis를 실행하는 방법에 대한 통찰력을 얻었습니다.
MIT, 라이센스 파일을 참조하십시오