feat: 功能优化

This commit is contained in:
2026-01-27 01:39:08 +08:00
parent bf12e70339
commit 24f66c8e81
24 changed files with 1570 additions and 133 deletions

View File

@@ -1,21 +1,18 @@
/**
* TTS (Text-to-Speech) 公共Hook
* 支持多个供应商:Qwen, Azure, AWS等
* 支持多个供应商:CosyVoice, SiliconFlow, Azure, AWS等
*/
import { ref, computed } from 'vue'
import { message } from 'ant-design-vue'
import { VoiceService } from '@/api/voice'
import { normalizeProviderType, VOICE_PROVIDER_TYPES } from '@/config/voiceConfig'
// 供应商配置
const TTS_PROVIDERS = {
QWEN: 'qwen',
AZURE: 'azure',
AWS: 'aws'
}
// 兼容旧代码的导出
const TTS_PROVIDERS = VOICE_PROVIDER_TYPES
// 默认配置
// 供应商默认配置(使用标准化后的键名)
const DEFAULT_CONFIG = {
qwen: {
cosyvoice: {
apiEndpoint: '/api/tik/voice/tts',
audioFormat: 'mp3',
supportedFormats: ['mp3', 'wav']
@@ -32,16 +29,9 @@ const DEFAULT_CONFIG = {
}
}
/**
* TTS Hook主函数
* @param {Object} options 配置选项
* @param {string} options.provider 供应商名称,默认'qwen'
* @param {Object} options.customConfig 自定义配置
* @returns {Object} TTS相关的方法和状态
*/
export function useTTS(options = {}) {
const {
provider = TTS_PROVIDERS.QWEN,
provider = VOICE_PROVIDER_TYPES.COSYVOICE,
customConfig = {}
} = options
@@ -59,7 +49,8 @@ export function useTTS(options = {}) {
// 获取当前供应商配置
const getProviderConfig = () => {
const config = DEFAULT_CONFIG[provider] || DEFAULT_CONFIG[TTS_PROVIDERS.QWEN]
const normalizedProvider = normalizeProviderType(provider)
const config = DEFAULT_CONFIG[normalizedProvider] || DEFAULT_CONFIG.cosyvoice
return { ...config, ...customConfig }
}
@@ -202,7 +193,7 @@ export function useTTS(options = {}) {
speechRate: speechRate.value || 1.0,
audioFormat: providerConfig.audioFormat,
timestamp: Date.now(),
provider: provider
providerType: normalizeProviderType(provider)
}
}
@@ -285,7 +276,7 @@ export function useTTS(options = {}) {
voiceConfigId: params.voiceConfigId,
speechRate: params.speechRate || speechRate.value,
audioFormat: params.audioFormat || providerConfig.audioFormat,
provider: provider
providerType: normalizeProviderType(provider)
}
return await VoiceService.synthesize(ttsParams)