-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Description
Feature Request: 增加对 TTS 服务商 Model ID 的灵活配置支持
问题描述 (Problem)
目前项目中 TTS 模块(lib/audio/tts-providers.ts)的 Model ID 采用了硬编码(Hardcoded)方式。例如:
- OpenAI TTS 固定使用
gpt-4o-mini-tts - GLM TTS 固定使用
glm-tts - Qwen TTS 固定使用
qwen3-tts-flash
这种实现方式限制了用户根据实际需求(如成本控制、音质要求或厂商模型更新)灵活切换模型的能力。
建议方案 (Proposed Solution)
建议在 TTS 配置体系中引入 modelId 参数,允许用户在 UI 设置界面或环境变量中自定义该值。
预期变更范围:
- 类型定义 (
lib/audio/types.ts): 在TTSModelConfig接口中增加modelId?: string字段。 - 状态存储 (
lib/store/settings.ts):- 在
ttsProvidersConfig的 Record 结构中增加modelId。 - 增加相应的
setTTSModelIdaction。
- 在
- 逻辑实现 (
lib/audio/tts-providers.ts):- 修改
generateOpenAITTS、generateGLMTTS等函数,优先使用config.modelId,若不存在则回退至当前的默认硬编码值。
- 修改
- UI 界面 (
components/settings/audio-settings.tsx):- 在 TTS 设置面板中为支持多模型的服务商增加 "Model ID" 输入框。
影响代码示例
以 OpenAI 为例,修改后的逻辑应类似:
const model = config.modelId || 'gpt-4o-mini-tts'; // 优先使用配置值
const response = await fetch(`${baseUrl}/audio/speech`, {
// ...
body: JSON.stringify({
model: model,
input: text,
// ...
}),
});理由 (Context)
随着大模型厂商频繁发布新的语音模型(例如 OpenAI 的 tts-1 vs tts-1-hd),灵活配置 Model ID 可以显著提升系统的可维护性和前瞻性,无需频繁修改核心代码即可适配新模型。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels