liumaolin
commited on
Commit
·
2c7b9b6
1
Parent(s):
627c3e7
Update README.
Browse files
README.md
CHANGED
|
@@ -151,9 +151,7 @@ uv pip install numpy==1.26.4
|
|
| 151 |
pip install numpy==1.26.4
|
| 152 |
```
|
| 153 |
|
| 154 |
-
###
|
| 155 |
-
|
| 156 |
-
`VoiceDialogue` 支持两种运行模式:**命令行模式 (CLI)** 和 **API 服务模式**。
|
| 157 |
|
| 158 |
#### 1. 命令行模式 (默认)
|
| 159 |
|
|
@@ -161,18 +159,14 @@ pip install numpy==1.26.4
|
|
| 161 |
|
| 162 |
```bash
|
| 163 |
# 启动语音对话系统 (默认使用中文,沈逸角色)
|
| 164 |
-
uv run main.py
|
| 165 |
-
# 或
|
| 166 |
python main.py
|
|
|
|
|
|
|
| 167 |
|
| 168 |
# 指定语言和角色
|
| 169 |
-
uv run main.py --language en --speaker Heart
|
| 170 |
-
# 或
|
| 171 |
python main.py --language en --speaker Heart
|
| 172 |
|
| 173 |
-
#
|
| 174 |
-
uv run main.py --help
|
| 175 |
-
# 或
|
| 176 |
python main.py --help
|
| 177 |
```
|
| 178 |
|
|
@@ -187,6 +181,8 @@ python main.py --help
|
|
| 187 |
```bash
|
| 188 |
# 启动 API 服务器
|
| 189 |
python main.py --mode api
|
|
|
|
|
|
|
| 190 |
|
| 191 |
# 指定不同端口和启用热重载
|
| 192 |
python main.py --mode api --port 9000 --reload
|
|
@@ -198,6 +194,10 @@ python main.py --mode api --port 9000 --reload
|
|
| 198 |
- 实时模型状态监控
|
| 199 |
- RESTful API 设计
|
| 200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 201 |
## ⚙️ 配置选项
|
| 202 |
|
| 203 |
### 启动参数
|
|
@@ -236,6 +236,32 @@ python main.py --mode api --port 9000 --reload
|
|
| 236 |
- **文件位置**: `src/VoiceDialogue/services/text/generator.py`
|
| 237 |
- **自定义**: 你可以修改系统提示词变量的值。
|
| 238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
## 📁 项目结构
|
| 240 |
|
| 241 |
```text
|
|
@@ -244,46 +270,27 @@ VoiceDialogue/
|
|
| 244 |
│ └── voice_dialogue/ # 主要源代码目录
|
| 245 |
│ ├── __init__.py # 包初始化文件
|
| 246 |
│ ├── cli/ # 命令行界面模块
|
| 247 |
-
│ │ ├── __init__.py
|
| 248 |
│ │ └── args.py # 命令行参数解析
|
| 249 |
│ ├── api/ # Web API 模块 (FastAPI)
|
| 250 |
-
│ │ ├── __init__.py
|
| 251 |
│ │ ├── app.py # FastAPI 应用实例
|
| 252 |
│ │ ├── server.py # uvicorn 服务器
|
| 253 |
│ │ ├── core/ # API 核心配置
|
| 254 |
│ │ ├── routes/ # API 路由
|
| 255 |
-
│ │ │ ├── __init__.py
|
| 256 |
-
│ │ │ ├── asr_routes.py # 语音识别路由
|
| 257 |
-
│ │ │ ├── tts_routes.py # 文本转语音路由
|
| 258 |
-
│ │ │ ├── system_routes.py # 系统管理路由
|
| 259 |
-
│ │ │ └── websocket_routes.py # WebSocket 路由
|
| 260 |
│ │ ├── schemas/ # 数据模型
|
| 261 |
│ │ ├── dependencies/ # API 依赖项
|
| 262 |
│ │ └── middleware/ # 中间件
|
| 263 |
│ ├── config/ # 配置管理
|
| 264 |
-
│ │
|
|
|
|
| 265 |
│ ├── core/ # 核心模块
|
| 266 |
│ │ ├── constants.py # 全局常量和队列
|
| 267 |
│ │ └── launcher.py # 系统启动器
|
| 268 |
│ ├── models/ # 数据模型和任务
|
| 269 |
-
│ │ ├── language_model.py # 语言模型定义
|
| 270 |
-
│ │ └── voice_task.py # 语音任务定义
|
| 271 |
│ ├── services/ # 服务模块
|
| 272 |
│ │ ├── audio/ # 音频处理服务
|
| 273 |
-
│ │ │ ├── capture.py # 回声消除音频捕获
|
| 274 |
-
│ │ │ ├── player.py # 音频播放
|
| 275 |
-
│ │ │ ├── generator.py # TTS 音频生成器
|
| 276 |
-
│ │ │ └── generators/ # TTS 引擎管理
|
| 277 |
│ │ ├── speech/ # 语音识别服务
|
| 278 |
-
│ │ │ ├── monitor.py # 语音状态监控
|
| 279 |
-
│ │ │ ├── recognizer.py # ASR 识别服务
|
| 280 |
-
│ │ │ └── recognizers/ # ASR 引擎管理
|
| 281 |
│ │ └── text/ # 文本生成服务
|
| 282 |
-
│ │ └── generator.py # LLM 文本生成
|
| 283 |
│ └── utils/ # 工具函数
|
| 284 |
-
├── third_party/ # 第三方库
|
| 285 |
-
│ ├── moyoyo_tts/ # GPT-SoVITs TTS 引擎
|
| 286 |
-
│ └── AECAudioRecorder/ # 回声消除音频录制器
|
| 287 |
├── electron-app/ # Electron 桌面应用
|
| 288 |
│ ├── main.js # Electron 主进程
|
| 289 |
│ ├── preload.js # 预加载脚本
|
|
@@ -298,17 +305,16 @@ VoiceDialogue/
|
|
| 298 |
│ ├── build-python.sh # Python 打包脚本
|
| 299 |
│ ├── build-electron.sh # Electron 打包脚本
|
| 300 |
│ └── clean.sh # 清理脚本
|
| 301 |
-
├──
|
| 302 |
-
├──
|
|
|
|
|
|
|
| 303 |
├── dist/ # 分发包输出目录
|
| 304 |
├── build/ # 构建临时文件
|
| 305 |
-
├──
|
| 306 |
-
|
| 307 |
-
|
| 308 |
-
|
| 309 |
-
│ └── www/ # Web资源
|
| 310 |
-
├── main.py # 项目启动入口(简化版)
|
| 311 |
-
├── pyproject.toml # 项目配置文件 (uv/pip)
|
| 312 |
├── requirements.txt # Python 依赖
|
| 313 |
├── uv.lock # uv 锁定文件
|
| 314 |
├── .python-version # Python 版本配置
|
|
@@ -408,6 +414,21 @@ python --version
|
|
| 408 |
# 如果版本过低,请升级或使用虚拟环境
|
| 409 |
```
|
| 410 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 411 |
## 📊 性能优化建议
|
| 412 |
|
| 413 |
### 硬件优化
|
|
|
|
| 151 |
pip install numpy==1.26.4
|
| 152 |
```
|
| 153 |
|
| 154 |
+
### 🖥️ 应用模式
|
|
|
|
|
|
|
| 155 |
|
| 156 |
#### 1. 命令行模式 (默认)
|
| 157 |
|
|
|
|
| 159 |
|
| 160 |
```bash
|
| 161 |
# 启动语音对话系统 (默认使用中文,沈逸角色)
|
|
|
|
|
|
|
| 162 |
python main.py
|
| 163 |
+
# 或使用 uv
|
| 164 |
+
uv run main.py
|
| 165 |
|
| 166 |
# 指定语言和角色
|
|
|
|
|
|
|
| 167 |
python main.py --language en --speaker Heart
|
| 168 |
|
| 169 |
+
# 查看所有可用参数
|
|
|
|
|
|
|
| 170 |
python main.py --help
|
| 171 |
```
|
| 172 |
|
|
|
|
| 181 |
```bash
|
| 182 |
# 启动 API 服务器
|
| 183 |
python main.py --mode api
|
| 184 |
+
# 或使用 uv
|
| 185 |
+
uv run main.py --mode api
|
| 186 |
|
| 187 |
# 指定不同端口和启用热重载
|
| 188 |
python main.py --mode api --port 9000 --reload
|
|
|
|
| 194 |
- 实时模型状态监控
|
| 195 |
- RESTful API 设计
|
| 196 |
|
| 197 |
+
#### 3. 桌面应用模式 (Electron)
|
| 198 |
+
提供图形界面的桌面应用程序。
|
| 199 |
+
|
| 200 |
+
|
| 201 |
## ⚙️ 配置选项
|
| 202 |
|
| 203 |
### 启动参数
|
|
|
|
| 236 |
- **文件位置**: `src/VoiceDialogue/services/text/generator.py`
|
| 237 |
- **自定义**: 你可以修改系统提示词变量的值。
|
| 238 |
|
| 239 |
+
### 构建完整应用
|
| 240 |
+
项目提供了完整的构建脚本,可以一键构建包含Python后端和Electron前端的完整应用:
|
| 241 |
+
|
| 242 |
+
1. 首先,激活当前 Python 环境
|
| 243 |
+
|
| 244 |
+
```bash
|
| 245 |
+
source .venv/bin/activate
|
| 246 |
+
# 或使用 conda
|
| 247 |
+
conda activate voicedialogue
|
| 248 |
+
```
|
| 249 |
+
|
| 250 |
+
2. 使用构建脚本
|
| 251 |
+
|
| 252 |
+
```bash
|
| 253 |
+
# 使用构建脚本(推荐)
|
| 254 |
+
bash scripts/build.sh
|
| 255 |
+
|
| 256 |
+
# 或分别构建
|
| 257 |
+
bash scripts/build-python.sh # 构建Python后端
|
| 258 |
+
bash scripts/build-electron.sh # 构建Electron前端
|
| 259 |
+
|
| 260 |
+
# 清理构建产物
|
| 261 |
+
bash scripts/clean.sh
|
| 262 |
+
```
|
| 263 |
+
|
| 264 |
+
|
| 265 |
## 📁 项目结构
|
| 266 |
|
| 267 |
```text
|
|
|
|
| 270 |
│ └── voice_dialogue/ # 主要源代码目录
|
| 271 |
│ ├── __init__.py # 包初始化文件
|
| 272 |
│ ├── cli/ # 命令行界面模块
|
|
|
|
| 273 |
│ │ └── args.py # 命令行参数解析
|
| 274 |
│ ├── api/ # Web API 模块 (FastAPI)
|
|
|
|
| 275 |
│ │ ├── app.py # FastAPI 应用实例
|
| 276 |
│ │ ├── server.py # uvicorn 服务器
|
| 277 |
│ │ ├── core/ # API 核心配置
|
| 278 |
│ │ ├── routes/ # API 路由
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 279 |
│ │ ├── schemas/ # 数据模型
|
| 280 |
│ │ ├── dependencies/ # API 依赖项
|
| 281 |
│ │ └── middleware/ # 中间件
|
| 282 |
│ ├── config/ # 配置管理
|
| 283 |
+
│ │ ├── paths.py # 路径配置
|
| 284 |
+
│ │ └── speaker_config.py # 说话人配置
|
| 285 |
│ ├── core/ # 核心模块
|
| 286 |
│ │ ├── constants.py # 全局常量和队列
|
| 287 |
│ │ └── launcher.py # 系统启动器
|
| 288 |
│ ├── models/ # 数据模型和任务
|
|
|
|
|
|
|
| 289 |
│ ├── services/ # 服务模块
|
| 290 |
│ │ ├── audio/ # 音频处理服务
|
|
|
|
|
|
|
|
|
|
|
|
|
| 291 |
│ │ ├── speech/ # 语音识别服务
|
|
|
|
|
|
|
|
|
|
| 292 |
│ │ └── text/ # 文本生成服务
|
|
|
|
| 293 |
│ └── utils/ # 工具函数
|
|
|
|
|
|
|
|
|
|
| 294 |
├── electron-app/ # Electron 桌面应用
|
| 295 |
│ ├── main.js # Electron 主进程
|
| 296 |
│ ├── preload.js # 预加载脚本
|
|
|
|
| 305 |
│ ├── build-python.sh # Python 打包脚本
|
| 306 |
│ ├── build-electron.sh # Electron 打包脚本
|
| 307 |
│ └── clean.sh # 清理脚本
|
| 308 |
+
├── third_party/ # 第三方库
|
| 309 |
+
│ ├── moyoyo_tts/ # GPT-SoVITs TTS 引擎
|
| 310 |
+
│ └── AECAudioRecorder/ # 回声消除音频录制器
|
| 311 |
+
├── assets/ # 资源文件
|
| 312 |
├── dist/ # 分发包输出目录
|
| 313 |
├── build/ # 构建临时文件
|
| 314 |
+
├── tests/ # 测试文件
|
| 315 |
+
├── docs/ # 文档目录
|
| 316 |
+
├── main.py # 项目启动入口
|
| 317 |
+
├── pyproject.toml # 项目配置文件 (uv)
|
|
|
|
|
|
|
|
|
|
| 318 |
├── requirements.txt # Python 依赖
|
| 319 |
├── uv.lock # uv 锁定文件
|
| 320 |
├── .python-version # Python 版本配置
|
|
|
|
| 414 |
# 如果版本过低,请升级或使用虚拟环境
|
| 415 |
```
|
| 416 |
|
| 417 |
+
### 8. 桌面应用相关问题
|
| 418 |
+
- **问题**: Electron 应用启动失败或功能异常。
|
| 419 |
+
- **解决方案**:
|
| 420 |
+
- 确保 Node.js 版本 >= 16
|
| 421 |
+
- 重新安装依赖:`cd electron-app && npm install`
|
| 422 |
+
- 检查 Python 后端是否正常运行
|
| 423 |
+
|
| 424 |
+
### 9. 构建打包问题
|
| 425 |
+
- **问题**: 使用构建脚本失败。
|
| 426 |
+
- **解决方案**:
|
| 427 |
+
- 确保有执行权限:`chmod +x scripts/*.sh`
|
| 428 |
+
- 检查所有依赖是否安装完成
|
| 429 |
+
- 查看具体错误日志进行调试
|
| 430 |
+
|
| 431 |
+
|
| 432 |
## 📊 性能优化建议
|
| 433 |
|
| 434 |
### 硬件优化
|