📌 原作者致谢:本项目基于 sisi 的原始作品二次开发,原始仓库 fxy2311-youyou/expression-trainer。感谢原作者的开源贡献(MIT 许可证)。本仓库在其基础上新增了暗色模式(支持手动切换明/暗或跟随系统)、UI 交互优化等改进。
👉 在线版已上线:exprtrain.online,无需安装,打开浏览器即用。支持中英双语。
一个帮你训练口语表达精准度的本地桌面应用。实时语音识别 → 词库匹配 → AI反馈,全程离线+本地处理。
- 🎤 实时语音识别:基于 Sherpa-ONNX,完全离线,中文优化
- 📝 全屏字幕显示:黑底大字,实时显示你说的每一句话
- 🔍 词库分析:自动检测填充词、犹豫词、笼统词,给出精准替代
- 🤖 AI反馈:支持 Groq/OpenAI/DeepSeek/Ollama 多后端
- 📊 分析报告:6维度深度分析(逻辑/直接性/填充词/密度/词汇/亮点)
- 🌓 明暗主题:顶栏一键切换,三态循环(跟随系统 / 亮色 / 暗色),偏好本地保存重启保持
cd expression-trainer
npm install需要下载 Sherpa-ONNX 的 streaming paraformer 中英双语模型:
cd models
# 方法一:使用 wget
wget https://github.com/k2-fsa/sherpa-onnx/releases/download/asr-models/sherpa-onnx-streaming-paraformer-bilingual-zh-en.tar.bz2
tar xvf sherpa-onnx-streaming-paraformer-bilingual-zh-en.tar.bz2
# 方法二:使用 huggingface
# https://huggingface.co/csukuangfj/sherpa-onnx-streaming-paraformer-bilingual-zh-en下载后 models/ 目录应包含:
models/
└── sherpa-onnx-streaming-paraformer-bilingual-zh-en/
├── encoder.int8.onnx
├── decoder.int8.onnx
└── tokens.txt
npm start启动后点击右上角 ⚙️ 进入设置页面。
推荐配置:
| 后端 | 费用 | 速度 | 获取方式 |
|---|---|---|---|
| DeepSeek | 极低 | 快 | platform.deepseek.com |
| OpenAI | 中等 | 快 | platform.openai.com |
| Ollama | 免费 | 取决于硬件 | ollama.com 本地运行 |
推荐 deepseek:生成报告质量高,且成本极低。
- 点击「开始录制」 → 对着麦克风说话
- 实时字幕会在屏幕中央显示你说的内容
- 左侧面板实时统计填充词/犹豫词/笼统词
- 右侧面板每50字会给出AI实时反馈
- 说完后点击「结束」 → 可以点「生成报告」获取完整分析
| 颜色 | 含义 |
|---|---|
| 🔴 红色波浪下划线 | 填充词(嗯、啊、那个、然后…) |
| 🟠 橙色 | 犹豫词(可能、也许、我觉得…) |
| 🟡 黄色虚线 | 笼统词(有精准替代建议) |
| 🟢 绿色 | 有力表达(好句子!) |
┌─────────────────────────────────────────┐
│ Electron 主进程 │
│ ├── Sherpa-ONNX (离线语音识别) │
│ ├── 词库匹配 (emotion-lexicon.json) │
│ └── AI反馈 (多后端 HTTP API) │
├─────────────────────────────────────────┤
│ 渲染进程 (Chromium) │
│ ├── 全屏字幕显示 │
│ ├── 实时统计面板 │
│ └── 分析报告弹窗 │
└─────────────────────────────────────────┘
data/emotion-lexicon.json 基于大连理工情感词库7大类结构,包含:
- 130+ 情绪词:分类(喜怒哀惧恶惊)+ 强度(1-9)
- 笼统词→精准词映射:25组高频替代建议
- 填充词表:24个常见口头禅
- 犹豫词表:19个弱化表达
- 程度词梯度:弱→中→强→极 四级
- 画面化描述:10组「抽象→具象」转换
- 犹豫→直接转换:8组对照示例
# 开发模式(带DevTools)
npm run dev
# 目录结构
├── main.js # Electron主进程
├── preload.js # preload脚本
├── src/
│ ├── index.html # 主界面
│ ├── settings.html # 设置页
│ ├── styles.css # 样式
│ ├── app.js # 前端逻辑
│ └── settings.js # 设置逻辑
├── lib/
│ ├── asr.js # 语音识别
│ ├── lexicon.js # 词库匹配
│ ├── ai-feedback.js # AI反馈
│ └── prompts.js # Prompt模板
├── data/
│ └── emotion-lexicon.json
└── models/ # Sherpa-ONNX模型(需下载)- macOS 12+ / Windows 10+ / Linux
- Node.js 18+
- 麦克风权限
- (可选)网络连接(用于AI反馈,词库分析可离线)
MIT