diff options
author | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-04-09 19:19:33 +0200 |
---|---|---|
committer | Heiner Lohaus <hlohaus@users.noreply.github.com> | 2024-04-09 19:19:33 +0200 |
commit | 90715e702bbebcf2c3cfd39628c931bbadda28b0 (patch) | |
tree | f574bae75b22ee59e5c60e2f6f4017338614fd8c /projects/text_to_speech/index.js | |
parent | Add async client docs (diff) | |
download | gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.tar gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.tar.gz gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.tar.bz2 gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.tar.lz gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.tar.xz gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.tar.zst gpt4free-90715e702bbebcf2c3cfd39628c931bbadda28b0.zip |
Diffstat (limited to '')
-rw-r--r-- | projects/text_to_speech/index.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/projects/text_to_speech/index.js b/projects/text_to_speech/index.js new file mode 100644 index 00000000..63059a8d --- /dev/null +++ b/projects/text_to_speech/index.js @@ -0,0 +1,38 @@ +const worker = {} +if (!worker.current) { + // Create the worker if it does not yet exist. + worker.current = new Worker(new URL('./worker.js', import.meta.url), { + type: 'module' + }); +} + +window.doSpeech = false; + +const onMessageReceived = (e) => { + switch (e.data.status) { + case 'error': + window.onSpeechResponse(null); + window.doSpeech = false; + break; + case 'complete': + const blobUrl = URL.createObjectURL(e.data.output); + window.onSpeechResponse(blobUrl); + window.doSpeech = false; + break; + } +}; +worker.current.addEventListener('message', onMessageReceived); + +import { DEFAULT_SPEAKER, SPEAKERS } from './constants'; + +const handleGenerateSpeech = (text, speaker_id=DEFAULT_SPEAKER) => { + window.doSpeech = true; + worker.current.postMessage({ + text, + speaker_id: speaker_id, + }); +}; + +window.SPEAKERS = SPEAKERS; +window.handleGenerateSpeech = handleGenerateSpeech; +window.onSpeechResponse = (url) => console.log(url);
\ No newline at end of file |