NEGA 是一个基于 Web 的西海岸口音英语练习应用。它结合了本地 ASR(语音识别)、DeepSeek 大模型(LLM)和本地 GPT-SoVITS(语音合成)技术,提供了一个实时、互动且具有强烈个性的英语学习环境。
- 西海岸帮派导师: AI 扮演一位严格但酷炫的西海岸“导师”,教授地道的街头俚语和语法。
- 实时语音交互:
- 听: 使用 Silero VAD + Faster-Whisper 进行快速准确的语音转文字(强制识别为英语)。
- 说: 通过 WebSocket 流式传输,集成 GPT-SoVITS 生成带有强烈口音的语音。
- 互动式学习:
- 随机抽取短语进行教学。
- 实时纠正发音和语法。
- 点击重播: 点击聊天气泡中的文字即可重听该段语音。
- 沉浸式 UI: 全屏黑色主题界面,不仅酷炫,更专注于对话体验。
- 历史记录: 自动保存聊天记录和生成的语音文件,便于回顾。
- 后端: Python, FastAPI, WebSockets
- 前端: HTML, CSS, JavaScript (原生)
- AI 模型:
- LLM: DeepSeek API (OpenAI 兼容)
- ASR: Faster-Whisper ("small" model), Silero VAD
- TTS: GPT-SoVITS (本地服务)
确保已安装 Python 3.10+ 和 CUDA 环境(推荐用于加速模型推理)。
# 创建虚拟环境
python -m venv venv
# 激活环境
.\venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt(注意: 本项目依赖 fastapi, uvicorn, websockets, openai, faster-whisper, numpy, torch, requests 等库)
在 data/config.json 中配置您的 API Key 和本地模型路径:
{
"deepseek_api_key": "sk-your-key-here",
"speech_rate": 1.0,
"gpt_weights_path": "e:\\Projects\\NEGA\\sovits\\GPT_weights_v2\\NEGA-e15.ckpt",
"sovits_weights_path": "e:\\Projects\\NEGA\\sovits\\SoVITS_weights_v2\\NEGA_e8_s200.pth",
"ref_audio_path": "path/to/ref.wav",
"ref_text": "Reference text content..."
}请确保您已经启动了 GPT-SoVITS 的 API 服务(默认端口 9880)。
双击根目录下的 run_nega.bat 或在终端运行:
run_nega.bat启动后,浏览器会自动打开 http://localhost:8000/static/index.html。
点击屏幕中央的 NEGA 标志即可开始对话。
app/: 后端核心代码 (FastAPI, LLM 逻辑, 音频处理)static/: 前端静态资源 (HTML, CSS, JS)data/: 配置文件、短语库、聊天记录和生成的语音文件sovits/: GPT-SoVITS 权重和相关文件
- 首次运行时会下载 VAD 和 Whisper 模型,请保持网络通畅。
- 语音生成需要 GPU 加速以获得最佳实时体验。
- 聊天记录和语音文件保存在
data/chat_history/,请定期清理以免占用过多空间。