API -Dokumente »
Dieses Projekt wurde erstellt, da es immer ein Kampf ist, den Synthese Teil der Web Speech API in den meisten großen Browsern zu erreichen.
speechSynthesis über mehrere Browser hinwegEasySpeech.debug HookHinweis: Dies ist kein Polyfill -Paket. Wenn Ihr Zielbrowser keine Sprachsynthese oder die Web -Sprach -API unterstützt, ist dieses Paket nicht verwendbar.
Die Live-Demo ist unter https://leaonline.github.io/easy-speech/ erhältlich. Sie können ihn verwenden, um Ihren Browser für die Unterstützung und Funktionalität speechSynthesis zu testen.

Inhaltsverzeichnis mit DoctoC erzeugt
Installieren Sie von NPM über
$ npm install easy-speech Sie können auch die verschiedenen Builds für verschiedene Ziele verwenden, siehe dist -Ordner:
/dist/EasySpeech.js - ESM/dist/EasySpeech.cjs.js - CommonJS/dist/EasySpeech.es5.js - Legacy Knoten kompatibel/dist/EasySpeech.iife.js - Legacy Compatible Build, funktioniert auch mit älteren oder exotischen Browsern, solange sie Versprechen unterstützen (PRS Willkommen, sich in Rückrufe zu verwandeln!)/dist/index.d.ts - TypeScript -TypdefinitionenSie können sie über CDN verwenden:
<!-- 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 > Importieren Sie EasySpeech und Erkenntnis, ob Ihr Browser TTS (Text zur Sprache) in der Lage ist:
import EasySpeech from 'easy-speech'
EasySpeech . detect ( )Es gibt ein Objekt mit den folgenden Informationen zurück:
{
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
} Wenn zumindest SpeechSynthesis und SpeechSynthesisUtterance definiert sind, können Sie loslegen.
Die Vorbereitung von allem zur Arbeit ist nicht so klar wie es sollte, insbesondere wenn es darum geht, die Funktionalität der Kreuzbrowser zu zielen. Die asynchrone Init -Funktion hilft Ihnen bei dieser Situation:
EasySpeech . init ( { maxTimeout : 5000 , interval : 250 } )
. then ( ( ) => console . debug ( 'load complete' ) )
. catch ( e => console . error ( e ) ) Die Init-Routine wird mehrere Phasen durchlaufen, um die Umgebung einzurichten:
onvoiceschanged verfügbar ist: Verwenden Sie onvoiceschangedonvoiceschanged nicht verfügbar ist: Fallback zur Zeitüberschreitungonvoiceschanged abgefeuert wird, aber keine Stimmen verfügbar sind: Fallback zur Zeitüberschreitunginterval nach, bis ein maxTimeout erreicht istWenn Ihre Init -Routing noch keine Stimmen erkannt / geladen hat, wird auch die Sprache unterstützt, bitte hinterlassen Sie ein Problem!
Wenn Stimmen gefunden werden, wird eine Fallback -Stimme nach den folgenden Regeln vorgelegt:
default gibt, die so eingestellt ist, dass sie dies als Fallback -Stimme verwendennavigator.language Hinweis: Diese Fallback -Stimme wird von EasySpeech.defaults() EasySpeech.speak() außer Kraft gesetzt.
Dies ist so einfach wie es nur geht:
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' )
} ) Das Versprechen wird automatisch aufgelöst, wenn das Sprechen endet oder ablehnt, wenn ein Fehler aufgetreten ist. Sie können diese Ereignishörer zusätzlich anschließen, wenn Sie EasySpeech.on mögen oder verwenden, um Standardhörer an jedes Mal bei der Aufruf EasySpeech.speak zu beibringen.
Es gibt einen eigenen FAQ -Abschnitt, der bei gemeinsamen Problemen helfen soll.
Es gibt eine vollständige API -Dokumentation: API -Dokumente
Jeder Beitrag wird begrüßt. Bitte öffnen Sie Probleme, wenn etwas nicht wie erwartet funktioniert.
Wenn Sie den Code beitragen möchten, lesen Sie bitte die Richtlinien zum Beitrag zur Verfügung.
In diesem Projekt wurden verschiedene Ressourcen verwendet, um Einblicke zu erhalten, wie die besten Cross-Browser-Sprach-Synthese ausgeführt werden können:
MIT, siehe Lizenzdatei