Files
haibao-tts-cli/changelog.md

117 lines
4.3 KiB
Markdown
Raw Normal View History

# 版本变更记录 (changelog.md)
## [0.3.2] - 2026-05-09
### 修复
- 修复流式播放无声音问题(守护进程 `send --stream` 和 CLI `--stream --play`
- 修复 SSE 解析结构体层级:`audio``choices[0].delta.audio.data`,非顶层字段
- 修复 SSE 行分割问题HTTP bytes_stream chunk 边界不对齐 `\n`,添加 `line_buf` 行缓冲器
### 重构
- 重写 daemon 主循环:`LocalSet` + `spawn_local` 替代 `std::thread::spawn` + 桥接,简化流式播放路径
- 统一 CLI 和 daemon 的流式播放逻辑
---
## [0.3.1] - 2026-05-09
### 修复
- 修复 HTTP `/synthesize` 接口未实际调用 TTS 合成的问题(之前只返回"请求已接收"
- 修复语气替换 bug长匹配`...`/`……`)优先于短匹配(`.`/`。`),避免替换冲突
- 修复 `show_voices()` 显示旧版 3 音色而非完整 9 音色列表
### 代码质量
- 清理 9 个编译器警告unused code/import/variable
- 修复 `write_log` 线程安全问题:使用 `Mutex` 保护 HTTP 线程与 async 线程的并发文件写入
- 实现 0 警告 0 错误构建
---
## [0.3.0] - 2026-04-25
### 新增
- 实现守护进程Daemon模式类似 Docker 架构
- TCP Socket 服务器tokio::net::TcpListener多客户端并发支持
- PID 文件管理(启动/停止/状态检测)
- 日志记录到 `~/.config/tts/ttsd.log`
- 复用现有 TTS API 调用和音频播放功能
- 新增 `src/client.rs` TCP 客户端模块
- 新增 `daemon start/stop/status/logs` 子命令
- 新增 `send` 子命令(发送文本到守护进程进行 TTS 合成播放)
- 新增 `ttsd` 内部子命令(由 `daemon start -d` 自动调用)
- 新增 HTTP 接口(端口 = TCP 端口 + 1
- `POST /synthesize` 语音合成接口
- `GET /health` 健康检查
- 新增日志级别INFO/WARN/ERROR 自动检测)+ PID 信息
- 新增 `--style` 参数支持宏观场景风格标签
### 跨平台
- 所有平台统一使用 `~/.config/tts/` 目录
- TCP Socket 通用方案Windows/Linux/macOS
- `nohup` 后台运行Unix/ `cmd /C start` 后台运行Windows
### 协议设计
- JSON over TCP简洁易调试
- 风格参数自动转换为 `<style>...</style>` 标签(符合官方文档)
---
## [0.2.0] - 2026-04-24
### 新增
- 实现 `--stream` 流式输出功能
- SSEServer-Sent Events处理流式响应
- 流式输出自动使用 pcm16 格式
- 支持流式输出到 stdout 或保存到文件
- `pcm16_to_wav()` 函数自动封装 WAV 头
- 创建 `src/tone.rs` 自动语气转换模块
- `apply_tone()` 根据标点添加整体语气标签
- `insert_mid_tone()` 细粒度控制标签
- `analyze_tone()` 分析组合语气
- `has_tone_tag()` 检测已有标签避免重复
- 实现分层配置设计:
- `project.config.toml` 项目默认配置
- `~/.config/tts/config.toml` 用户配置
- 新增 `ratatui` + `crossterm` 依赖,创建 `src/ui.rs` 模块
- 美化所有 CLI 输出(彩色表格/标签)
- 交互式 onboard 表单(支持 API Key 隐藏输入)
### 修改
- 更新音色列表为 Mimo-TTS 完整 9 音色
- 默认音色从 `default_zh` 改为 `mimo_default`
- 添加音色验证,无效时回退默认
### 修复
- 默认音色未生效问题
- 流式 SSE 解析编译错误
- stdout 输出被 println 污染
---
## [0.1.0] - 2026-04-24
### 新增
- 初始化 Rust 项目结构edition 2021
- 实现 CLI 模块cli.rs- clap derive 模式
- `--text`/`--file` 文本输入
- `--voice`/`--format`/`--output`/`--play` 参数
- `Onboard`/`Voices`/`Config`/`ShowConfig` 子命令
- 实现 API 调用模块api.rs- Builder 模式
- 双 Header 认证api-key + Authorization: Bearer
- Base64 解码音频数据
- 实现配置管理模块config.rs- Singleton 模式
- 统一配置路径 `~/.config/tts/config.toml`
- 实现主程序入口main.rs
- tokio 异步运行时
- 退出码规范0=成功, 1=参数, 2=配置, 3=API, 4=文件)
- 支持三种输出方式:播放 / 保存 / stdout 流式
- 创建文档体系taolun.md、changelog.md、agents.md
---
## 版本规范
遵循 [语义化版本 2.0.0](https://semver.org/lang/zh-CN/)
- 主版本号:不兼容的 API 修改
- 次版本号:向下兼容的功能性新增
- 修订号:向下兼容的问题修正