APIドキュメント»
このプロジェクトは作成されました。これは、ほとんどの主要なブラウザでWeb Speech APIの合成部分を実行するのに常に苦労しているためです。
speechSynthesis使用するための単一APIEasySpeech.debugフックを介した内部ロギング注:これはポリフィルパッケージではありません。ターゲットブラウザが音声合成やWebスピーチAPIをサポートしていない場合、このパッケージは使用できません。
ライブデモはhttps://leaonline.github.io/easypeech/で入手できます。これを使用して、 speechSynthesisサポートと機能についてブラウザをテストできます。

Doctocで生成された目次
npmからインストールします
$ npm install easy-speechさまざまなターゲットにさまざまなビルドを使用することもできます。DIST distを参照してください。
/dist/EasySpeech.js -esm/dist/EasySpeech.cjs.js -commonjs/dist/EasySpeech.es5.jsレガシーノード互換/dist/EasySpeech.iife.jsレガシー互換ビルドは、約束をサポートする限り、古いまたはエキゾチックなブラウザでも機能します(コールバックへの変換へようこそ!)/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をインポートし、最初に、ブラウザがTTS(テキストからスピーチ)が可能であるかどうかを検出します。
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が定義されている場合、あなたは良いことです。
特にクロスブラウザー機能をターゲットにする場合、すべてを機能させるためにすべてを準備することは、必要なほど明確ではありません。非同期init機能は、この状況に役立ちます。
EasySpeech . init ( { maxTimeout : 5000 , interval : 250 } )
. then ( ( ) => console . debug ( 'load complete' ) )
. catch ( e => console . error ( e ) ) Init-routineは、環境をセットアップするためにいくつかの段階を経ます。
onvoiceschanged利用可能な場合: onvoiceschangedを使用してくださいonvoiceschangedが利用できない場合:タイムアウトへのフォールバックonvoiceschangedが解雇されたが、利用可能な声はありません:タイムアウトへのフォールバックmaxTimeoutに到達するまで、特定のintervalで声をリロードしますINITルーティングがまだ検出 /ロードされていない場合は、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を呼び出すたびにデフォルトのリスナーを添付することができます。
一般的な問題を支援することを目的とした独自のFAQセクションが利用可能です。
APIドキュメント:APIドキュメントがあります
すべての貢献が歓迎されます。予想どおりに機能していない場合は、問題を開いてください。
コードを寄付する場合は、寄付に関するガイドラインをお読みください。
このプロジェクトは、いくつかのリソースを使用して、最高のクロスブラウザーSpeechSthesisを実行する方法についての洞察を得ることができます。
MIT、ライセンスファイルを参照してください