diff --git a/apps/web/src/components/sidebar/index.vue b/apps/web/src/components/sidebar/index.vue index 175ce22f..f1e41e6d 100644 --- a/apps/web/src/components/sidebar/index.vue +++ b/apps/web/src/components/sidebar/index.vue @@ -131,6 +131,11 @@ const sidebarInfo = computed(() => [ name: 'memory-providers', icon: ['fas', 'brain'], }, + { + title: t('sidebar.ttsProvider'), + name: 'tts-providers', + icon: ['fas', 'volume-high'], + }, { title: t('sidebar.emailProvider'), name: 'email-providers', diff --git a/apps/web/src/i18n/locales/en.json b/apps/web/src/i18n/locales/en.json index c5f7815b..1ca4579b 100644 --- a/apps/web/src/i18n/locales/en.json +++ b/apps/web/src/i18n/locales/en.json @@ -55,6 +55,7 @@ "models": "Models", "searchProvider": "Search Providers", "memoryProvider": "Memory", + "ttsProvider": "TTS Providers", "emailProvider": "Email Providers", "settings": "Settings", "home": "Home", @@ -256,6 +257,39 @@ "builtin": "Built-in" } }, + "ttsProvider": { + "title": "TTS Providers", + "add": "Add TTS Provider", + "providerType": "Provider Type", + "searchPlaceholder": "Search TTS providers...", + "emptyTitle": "No TTS Providers", + "emptyDescription": "Add a TTS provider to enable text-to-speech for your bots", + "deleteConfirm": "Are you sure you want to delete this TTS provider? This action cannot be undone.", + "models": "Models", + "importModels": "Import Models", + "importSuccess": "Models imported successfully", + "importFailed": "Failed to import models", + "noModels": "No models found. Click \"Import Models\" to discover available models.", + "noCapabilities": "No capabilities available for this model.", + "fields": { + "language": "Language", + "languagePlaceholder": "Select language...", + "voice": "Voice", + "voicePlaceholder": "Select voice...", + "format": "Output Format", + "formatPlaceholder": "Select format...", + "speed": "Speed", + "speedDescription": "Playback speed (default: {default})", + "pitch": "Pitch", + "pitchDescription": "Voice pitch adjustment in Hz (default: {default})" + }, + "test": { + "title": "Test Synthesis", + "placeholder": "Enter text to synthesize...", + "generate": "Generate", + "failed": "Synthesis failed" + } + }, "emailProvider": { "title": "Email Providers", "add": "Add Email Provider", @@ -611,6 +645,8 @@ "searchProviderPlaceholder": "Select search provider", "memoryProvider": "Memory Provider", "memoryProviderPlaceholder": "Select memory provider (disabled if empty)", + "ttsModel": "TTS Model", + "ttsModelPlaceholder": "Select TTS model", "maxContextLoadTime": "Max Context Load Time", "maxContextTokens": "Max Context Tokens", "language": "Language", diff --git a/apps/web/src/i18n/locales/zh.json b/apps/web/src/i18n/locales/zh.json index e2ae97d4..b13d7d3a 100644 --- a/apps/web/src/i18n/locales/zh.json +++ b/apps/web/src/i18n/locales/zh.json @@ -55,6 +55,7 @@ "models": "模型管理", "searchProvider": "搜索提供方", "memoryProvider": "记忆", + "ttsProvider": "语音合成", "emailProvider": "邮件提供方", "settings": "设置", "home": "首页", @@ -252,6 +253,39 @@ "builtin": "内置" } }, + "ttsProvider": { + "title": "语音合成", + "add": "添加语音合成提供方", + "providerType": "提供方类型", + "searchPlaceholder": "搜索语音合成...", + "emptyTitle": "暂无语音合成提供方", + "emptyDescription": "添加语音合成提供方以为 Bot 启用文字转语音功能", + "deleteConfirm": "确定要删除此语音合成提供方吗?此操作不可撤销。", + "models": "模型", + "importModels": "导入模型", + "importSuccess": "模型导入成功", + "importFailed": "模型导入失败", + "noModels": "暂无模型,点击\"导入模型\"以发现可用模型。", + "noCapabilities": "该模型暂无可用能力信息。", + "fields": { + "language": "语言", + "languagePlaceholder": "选择语言...", + "voice": "声音", + "voicePlaceholder": "选择声音...", + "format": "输出格式", + "formatPlaceholder": "选择格式...", + "speed": "语速", + "speedDescription": "播放速度(默认:{default})", + "pitch": "音调", + "pitchDescription": "语音音调调整,单位 Hz(默认:{default})" + }, + "test": { + "title": "测试合成", + "placeholder": "输入要合成的文本...", + "generate": "生成", + "failed": "合成失败" + } + }, "emailProvider": { "title": "邮件提供方", "add": "添加邮件提供方", @@ -607,6 +641,8 @@ "searchProviderPlaceholder": "选择搜索提供方", "memoryProvider": "记忆提供方", "memoryProviderPlaceholder": "选择记忆提供方(为空则禁用)", + "ttsModel": "语音合成模型", + "ttsModelPlaceholder": "选择语音合成模型", "maxContextLoadTime": "最大上下文加载时间", "maxContextTokens": "最大上下文Token数", "language": "语言", diff --git a/apps/web/src/pages/bots/components/bot-settings.vue b/apps/web/src/pages/bots/components/bot-settings.vue index 43341d91..8303047e 100644 --- a/apps/web/src/pages/bots/components/bot-settings.vue +++ b/apps/web/src/pages/bots/components/bot-settings.vue @@ -32,6 +32,17 @@ /> + +