feat(mytoolkit): add voice command and improve docx post-processing

- Add voice/TTS CLI command via Volcengine WebSocket API
- Inject suppressAutoHyphens into all docx paragraphs in post-process
- Apply post-process fixes to all templates (not just default)
- Update review template: Cambria+SimSun fonts, 11pt for headings
- Sync default/review docx template formatting
This commit is contained in:
Zhengshou Lai
2026-05-27 16:17:47 +08:00
parent 7600b558cd
commit ac605c2c17
14 changed files with 1135 additions and 6 deletions
+73
View File
@@ -0,0 +1,73 @@
# MyToolkit 项目配置
本项目是个人 CLI 工具集,命令入口为 `mytoolkit`
---
## 1. 文档生成工作流
### 默认规则
Markdown 为唯一源格式,正式文档统一通过 `mytoolkit` 生成,不直接编辑 Word/PDF。
| 目标格式 | 命令 | 模板 |
|---------|------|------|
| PDF | `mytoolkit convert doc.md -o doc.pdf [-t cv/textbook/manual]` | `templates/md-to-pdf/` (Typst) |
| Word | `mytoolkit convert doc.md -o doc.docx [-t default/review]` | `templates/md-to-docx/` |
- `templates/md-to-docx/``default/`(通用文档)和 `review/`(审稿意见)两个 reference docx 模板
- `templates/md-to-pdf/` 为 Typst 模板目录,支撑 PDF 生成,直接修改模板需同步更新 mytoolkit
### 例外:短文档直接手写 Word
**审稿意见、评审意见**等 1-2 页的短文档,可直接复制对应 reference docx 模板到目标目录,在 Word 里直接撰写和修改。无需先写 Markdown 再转换。
- 模板路径:`templates/md-to-docx/review/template.docx`(审稿/评审意见)
- 好处:省去转换步骤,用户可直接在 Word 中调整格式和内容
- 适用条件:单篇、无复杂版本控制需求、内容较短(通常 < 2 页)
批量生成或需要版本控制时,仍回退到 Markdown → docx 工作流。
---
## 2. 语音合成 (TTS)
通过火山引擎(豆包)WebSocket API 实现,命令为 `mytoolkit voice tts`
### 配置
```bash
mytoolkit env set volc_appid <appid>
mytoolkit env set volc_access_token <token>
```
### 用法
```bash
mytoolkit voice tts "你好,世界"
mytoolkit voice tts -f script.txt
mytoolkit voice tts "文本" -v zh_male_wennuanahu_moon_bigtts --format mp3 --speed 10 -o output.mp3
```
可用音色:`zh_female_cancan_mars_bigtts``zh_female_shuangkuaisisi_moon_bigtts``zh_male_wennuanahu_moon_bigtts`(默认)、`zh_male_sunwukong_moon_bigtts`
格式:`mp3`(默认)、`wav``pcm`
语速:`-50``100`0 = 正常)
---
## 3. 依赖管理
项目使用 `uv` 管理依赖。修改 `pyproject.toml` 后运行 `uv sync` 同步。
```bash
uv sync
```
---
## 4. 命名规范
- **文件与文件夹**:英文统一使用 kebab-case,如 `review-comments.docx`
- **代码中的函数与变量**:统一使用 snake_case,如 `review_comments()`