mirror of
https://github.com/open-webui/open-webui
synced 2025-02-21 12:29:29 +00:00
refac
This commit is contained in:
parent
c416444e24
commit
7f260938db
@ -1,7 +1,10 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { user, settings, config } from '$lib/stores';
|
|
||||||
import { createEventDispatcher, onMount, getContext } from 'svelte';
|
|
||||||
import { toast } from 'svelte-sonner';
|
import { toast } from 'svelte-sonner';
|
||||||
|
import { createEventDispatcher, onMount, getContext } from 'svelte';
|
||||||
|
|
||||||
|
import { user, settings, config } from '$lib/stores';
|
||||||
|
import { getVoices as _getVoices } from '$lib/apis/audio';
|
||||||
|
|
||||||
import Switch from '$lib/components/common/Switch.svelte';
|
import Switch from '$lib/components/common/Switch.svelte';
|
||||||
const dispatch = createEventDispatcher();
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
@ -20,26 +23,26 @@
|
|||||||
let voices = [];
|
let voices = [];
|
||||||
let voice = '';
|
let voice = '';
|
||||||
|
|
||||||
const getOpenAIVoices = () => {
|
const getVoices = async () => {
|
||||||
voices = [
|
if ($config.audio.tts.engine === '') {
|
||||||
{ name: 'alloy' },
|
const getVoicesLoop = setInterval(async () => {
|
||||||
{ name: 'echo' },
|
voices = await speechSynthesis.getVoices();
|
||||||
{ name: 'fable' },
|
|
||||||
{ name: 'onyx' },
|
|
||||||
{ name: 'nova' },
|
|
||||||
{ name: 'shimmer' }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
const getWebAPIVoices = () => {
|
// do your loop
|
||||||
const getVoicesLoop = setInterval(async () => {
|
if (voices.length > 0) {
|
||||||
voices = await speechSynthesis.getVoices();
|
clearInterval(getVoicesLoop);
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
} else {
|
||||||
|
const res = await _getVoices(localStorage.token).catch((e) => {
|
||||||
|
toast.error(e);
|
||||||
|
});
|
||||||
|
|
||||||
// do your loop
|
if (res) {
|
||||||
if (voices.length > 0) {
|
console.log(res);
|
||||||
clearInterval(getVoicesLoop);
|
voices = res.voices;
|
||||||
}
|
}
|
||||||
}, 100);
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const toggleResponseAutoPlayback = async () => {
|
const toggleResponseAutoPlayback = async () => {
|
||||||
@ -61,11 +64,7 @@
|
|||||||
voice = $settings?.audio?.tts?.voice ?? $config.audio.tts.voice ?? '';
|
voice = $settings?.audio?.tts?.voice ?? $config.audio.tts.voice ?? '';
|
||||||
nonLocalVoices = $settings.audio?.tts?.nonLocalVoices ?? false;
|
nonLocalVoices = $settings.audio?.tts?.nonLocalVoices ?? false;
|
||||||
|
|
||||||
if ($config.audio.tts.engine === 'openai') {
|
await getVoices();
|
||||||
getOpenAIVoices();
|
|
||||||
} else {
|
|
||||||
getWebAPIVoices();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -195,7 +194,7 @@
|
|||||||
|
|
||||||
<datalist id="voice-list">
|
<datalist id="voice-list">
|
||||||
{#each voices as voice}
|
{#each voices as voice}
|
||||||
<option value={voice.name} />
|
<option value={voice.id}>{voice.name}</option>
|
||||||
{/each}
|
{/each}
|
||||||
</datalist>
|
</datalist>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user