liumaolin
refactor(core): Architecturally decouple Audio, ASR, and TTS modules
60f8238
from typing import Dict, Any
from voice_dialogue.tts import tts_config_registry
from voice_dialogue.utils.logger import logger
class TTSConfigInitializer:
"""TTS配置初始化器"""
@staticmethod
def initialize() -> Dict[str, Any]:
"""初始化TTS配置"""
result = {
"tts_configs_loaded": False,
"tts_config_count": 0,
"tts_config_errors": []
}
try:
config_count = len(tts_config_registry.get_all_configs())
result.update({
"tts_configs_loaded": True,
"tts_config_count": config_count
})
logger.info(f"已加载 {config_count} 个TTS配置")
except ImportError as e:
error_msg = f"TTS模块导入失败: {e}"
logger.error(error_msg)
result["tts_config_errors"].append(error_msg)
except Exception as e:
error_msg = f"TTS配置加载失败: {e}"
logger.error(error_msg, exc_info=True)
result["tts_config_errors"].append(error_msg)
return result
class AppConfig:
"""应用配置类"""
def __init__(self):
self.title = "VoiceDialogue API"
self.version = "1.0.0"
self.description = self._get_description()
self.docs_url = "/docs"
self.redoc_url = "/redoc"
def _get_description(self) -> str:
return """
# VoiceDialogue - 智能语音对话系统 API
一个基于人工智能的完整语音对话系统,集成了语音识别(ASR)、大语言模型(LLM)和文本转语音(TTS)技术,提供端到端的语音交互体验。
## 🚀 核心功能
### 🎤 语音识别 (ASR)
* **多语言支持**: 中文(FunASR)、英文及其他语言(Whisper)
* **智能引擎切换**: 根据语言自动选择最优识别引擎
* **实时语音转文本**: 低延迟的语音识别处理
* **动态语言切换**: 运行时创建和切换不同语言的ASR实例
### 🤖 智能对话
* **大语言模型集成**: 基于Qwen等先进模型
* **上下文理解**: 支持多轮对话和上下文记忆
* **自定义系统提示**: 可配置AI助手的行为和角色,支持用户自定义
### 🎭 高质量语音合成 (TTS)
* **多角色支持**: 集成多种高质量TTS引擎,支持丰富的中英文角色
* **智能引擎选择**: 根据内容语言自动选择最适合的TTS引擎
* **动态角色管理**: 运行时加载、切换和管理语音角色
### ⚡ 实时通信
* **WebSocket连接**: 支持实时语音消息推送
* **状态监控**: 实时监控系统和模型状态
* **会话管理**: 智能的会话ID管理和消息路由
### 🔧 系统管理与设置
* **服务生命周期**: 完整的系统启动、停止、重启控制
* **音频捕获**: 高质量的音频输入处理和回声消除
* **状态监控**: 详细的服务状态和性能指标
* **用户配置**: 支持用户通过API自定义和持久化应用设置
## 📋 主要API端点
### 设置管理 (Settings)
* `GET /api/v1/settings/prompts` - 获取当前生效的系统Prompt
* `POST /api/v1/settings/prompts` - 更新并保存用户自定义的Prompt
* `DELETE /api/v1/settings/prompts` - 重置Prompt为系统默认值
* `GET /api/v1/settings/prompts/default` - 获取系统默认的Prompt
### TTS模型管理 (TTS)
* `GET /api/v1/tts/models` - 获取所有可用的TTS模型列表
* `POST /api/v1/tts/models/load` - 加载指定的TTS模型
* `GET /api/v1/tts/models/{model_id}/status` - 查看模型下载和加载状态
* `DELETE /api/v1/tts/models/{model_id}` - 删除已下载的模型
### 语音识别管理 (ASR)
* `GET /api/v1/asr/languages` - 获取支持的识别语言列表
* `POST /api/v1/asr/instance/create` - 创建指定语言的ASR实例
### 系统控制 (System)
* `GET /api/v1/system/status` - 获取系统整体状态
* `POST /api/v1/system/start` - 启动语音对话系统
* `POST /api/v1/system/stop` - 停止语音对话系统
* `POST /api/v1/system/restart` - 重启语音对话系统
### 实时通信 (WebSocket)
* `WebSocket /api/v1/ws` - WebSocket连接,接收实时系统消息
## 🛠️ 技术特性
* **异步处理**: 基于FastAPI的高性能异步架构
* **后台任务**: 模型下载和加载在后台执行,不阻塞API响应
* **可配置性**: 支持用户通过API和配置文件自定义核心行为
* **持久化存储**: 用户设置可被持久化,重启应用后依然生效
* **内存缓存**: 缓存常用配置,减少磁盘I/O,提升性能
* **API文档**: 自动生成的交互式API文档(Swagger & ReDoc)
## 💡 使用场景
* **智能客服**: 语音客服机器人和自动问答系统
* **语音助手**: 个人或企业级语音助手应用
* **内容创作**: 语音内容生成和多角色配音
* **教育培训**: 语音交互式学习和培训系统
* **无障碍应用**: 视力障碍用户的语音交互界面
"""
def get_cors_config(self) -> dict:
"""获取CORS配置"""
return {
"allow_origins": ["*"], # 生产环境中应该设置具体的域名
"allow_credentials": True,
"allow_methods": ["*"],
"allow_headers": ["*"],
}