summaryrefslogtreecommitdiffstats
path: root/projects/text_to_speech/index.js
diff options
context:
space:
mode:
authorHeiner Lohaus <hlohaus@users.noreply.github.com>2024-04-09 19:19:33 +0200
committerHeiner Lohaus <hlohaus@users.noreply.github.com>2024-04-09 19:19:33 +0200
commit90715e702bbebcf2c3cfd39628c931bbadda28b0 (patch)
treef574bae75b22ee59e5c60e2f6f4017338614fd8c /projects/text_to_speech/index.js
parentAdd async client docs (diff)
downloadgpt4free-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.js38
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