diff --git a/src/lib/components/workspace/Models/ModelEditor.svelte b/src/lib/components/workspace/Models/ModelEditor.svelte
index 24bbc75edf..35240af4b0 100644
--- a/src/lib/components/workspace/Models/ModelEditor.svelte
+++ b/src/lib/components/workspace/Models/ModelEditor.svelte
@@ -10,6 +10,7 @@
import { getFunctions } from '$lib/apis/functions';
import { getModelsDefaults } from '$lib/apis/configs';
import { getBaseModelTags, getModelTags } from '$lib/apis/models';
+ import { getVoices } from '$lib/apis/audio';
import AdvancedParams from '$lib/components/chat/Settings/Advanced/AdvancedParams.svelte';
import Tags from '$lib/components/common/Tags.svelte';
@@ -28,6 +29,7 @@
import BuiltinTools from './BuiltinTools.svelte';
import PromptSuggestions from './PromptSuggestions.svelte';
import TerminalSelector from './TerminalSelector.svelte';
+ import TTSVoiceInput from './TTSVoiceInput.svelte';
import AccessControlModal from '../common/AccessControlModal.svelte';
import LockClosed from '$lib/components/icons/LockClosed.svelte';
@@ -108,6 +110,7 @@
let terminalId = '';
let tts = { voice: '' };
export let suggestionTags: { name: string }[] = [];
+ let voices: { id: string; name?: string }[] = [];
const loadSuggestionTags = async () => {
const res: string[] = await (preset ? getModelTags : getBaseModelTags)(
@@ -116,6 +119,11 @@
suggestionTags = res.map((tag) => ({ name: tag }));
};
+ const loadVoices = async () => {
+ const res = await getVoices(localStorage.token).catch(() => null);
+ voices = res?.voices ?? [];
+ };
+
const submitHandler = async () => {
loading = true;
@@ -267,6 +275,9 @@
if (suggestionTags.length === 0) {
await loadSuggestionTags();
}
+ if (voices.length === 0) {
+ await loadVoices();
+ }
// Fetch admin-configured default model metadata so the editor
// reflects the actual defaults rather than hardcoded values
@@ -855,10 +866,9 @@
{$i18n.t('TTS Voice')}
-
diff --git a/src/lib/components/workspace/Models/TTSVoiceInput.svelte b/src/lib/components/workspace/Models/TTSVoiceInput.svelte
new file mode 100644
index 0000000000..c6013c99c3
--- /dev/null
+++ b/src/lib/components/workspace/Models/TTSVoiceInput.svelte
@@ -0,0 +1,137 @@
+
+
+