一个面向课堂场景的实时字幕翻译项目。老师端通过浏览器麦克风采集英语音频,服务端调用云端 ASR / 翻译服务,学生端通过教室码实时查看中英字幕。
这个仓库只应提交安全版代码,不应提交任何真实账号、密钥、日志或本地测试素材。
server/.env是本地私有配置文件,已经被.gitignore排除。server/.env.example只提供空白模板,使用者必须填写自己的云服务账号和 API Key。node_modules/、client/dist/、.vite/、*.log、本地测试音频、截图和内部开发记录默认不入库。- 如果密钥曾经推送到公开仓库,请立即到对应云平台轮换密钥,不要只靠删除提交记录。
client/ React + Vite 前端
server/ Node.js + Socket.IO 服务端
test/ 本地测试素材目录,默认不入库
- Node.js 18 或更高版本
- npm
- 腾讯云实时语音识别 / 文本翻译相关账号和密钥
复制环境变量模板:
PowerShell:
Copy-Item server/.env.example server/.envmacOS / Linux:
cp server/.env.example server/.env在 server/.env 中填写自己的配置。账号和密钥不要提交到 GitHub。
TENCENT_APP_ID=
TENCENT_SECRET_ID=
TENCENT_SECRET_KEY=
TENCENT_TMT_REGION=ap-guangzhou
TENCENT_TRANSLATE_SOURCE=en
TENCENT_TRANSLATE_TARGET=zh可选旧服务变量也保留在 server/.env.example 中,例如百度翻译、豆包 Ark、DeepL。当前主流程使用腾讯云相关配置。
安装服务端依赖:
cd server
npm install启动服务端:
npm run dev安装前端依赖:
cd ../client
npm install启动前端:
npm run dev默认前端开发服务会通过 Vite 代理连接本地服务端。
服务端:
cd server
npm test前端:
cd client
npm test
npm run lint
npm run build推送到 GitHub 前建议执行:
git status --short
git check-ignore server/.env client/node_modules server/node_modules client/dist over.md确认 server/.env 没有出现在 git status 中,再提交代码。