feat: 功能优化
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user