API文檔»
創建了這個項目,因為在大多數主要瀏覽器上運行Web Speech API的合成部分總是很難。
speechSynthesis的單個APIEasySpeech.debug鉤注意:這不是一個多填充軟件包,如果您的目標瀏覽器不支持語音綜合或Web語音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打字稿類型定義您可以通過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 ,首先檢測,如果您的瀏覽器能夠使用TT(文本到語音):
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 ,那麼您就很好。
準備工作的所有工作都不如應該清楚,尤其是在針對跨瀏覽器功能時。異步初始功能將為您解決這種情況:
EasySpeech . init ( { maxTimeout : 5000 , interval : 250 } )
. then ( ( ) => console . debug ( 'load complete' ) )
. catch ( e => console . error ( e ) ) Init-Routine將經過幾個階段來設置環境:
onvoiceschanged :使用onvoiceschangedonvoiceschanged :超時的後備onvoiceschanged ,但沒有可用的聲音:超時的後備interval直到達到maxTimeout如果您的初始路由仍未檢測到 /加載任何聲音,但支持Speechsynth,請留下問題!
如果發現聲音,它將根據以下規則將後備聲音放置:
default屬性設置為真實用作後備語音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 。
有一個自己的常見問題解答部分旨在幫助解決常見問題。
有一個完整的API文檔可用:API文檔
歡迎每項貢獻,如果任何事情都沒有預期工作,請打開問題。
如果您打算貢獻代碼,請閱讀有關貢獻的準則。
該項目使用了幾種資源來獲取有關如何運行最佳跨瀏覽器語音合成的見解:
麻省理工學院,請參閱許可證文件