sun
78c72004bf
chore: 删除 ratelimit_middleware.go.tmp 临时文件
...
与 ratelimit_middleware.go 内容完全重复(SHA256 一致,1116 字节),
且无任何代码引用 .tmp 路径,属于误提交的开发期残留文件。
2026-08-23 13:15:15 +08:00
sun
4a8c563b32
Merge branch 'develop' into main
...
将 develop 分支累积的 51 个提交合入 main,涵盖完整的架构重构与
可观测性建设,作为下一阶段对外发布的稳定基线。
## 主要变更
### 架构重构
- 将单体 tts_server.go (778 行) 拆分为模块化目录:adapter/volcano、
controller、dto、middleware、router、setting、telemetry、metrics
- 引入 OpenAI /v1/audio/speech 兼容接口,火山引擎作为后端适配器
- 统一以 main.go 作为入口,集中启动顺序与信号处理
### 火山 TTS 适配器
- 重构请求/响应/合成为独立文件 (request.go / response.go /
synthesis.go / audio.go),namespace 修正为 UnidirectionalTTS
- 适配 v3 模型参数与音色复刻路由
- 兼容上游 sentence 字段对象/字符串两种形态,处理 event 字段缺失
- 新增请求诊断日志,便于排障
### 可观测性
- 自研轻量 telemetry 库 (counter/gauge/histogram/labels/registry)
- 暴露 Prometheus 格式指标,内置 /metrics 端点
- 限流与并发中间件仅统计 /v1/ 路由,避免监控路径污染计数
- 新增 health.html 监控面板,分组展示请求、延迟、限流、字节数等
### 中间件
- CORS:支持 ALLOWED_ORIGINS 白名单,日志优化
- 限流:令牌桶 + 并发控制,带可观测埋点
- 安全/鉴权:API Key 校验、请求体大小限制
- Logger:统一请求日志,修复中文乱码与换行
### 配置与启动
- setting/config.go 集中环境变量管理,启动时打印配置摘要
- 配置文件切换到 .env.example,支持音频格式/采样率/调试日志开关
### 文档与构建
- README 重写,补充 BYTEDANCE_TTS_DEBUG 调试日志小节,移除 1.0 旧内容
- Go 版本升级 1.23 -> 1.26
- 新增 Dockerfile / docker-compose.yml,镜像构建与编排
- 补充 .dockerignore / .gitignore,清理 BOM 头与废弃 tts-api.exe
### 修复
- 修复 response.go switch 大括号结构错误、synthesis.go 类型不匹配
- 修复请求体过大时的处理、冗余代码与日志乱码
- 限流/并发中间件跳过非 /v1/ 路由,避免监控路径污染计数
v0.2.0
2026-08-23 10:01:35 +08:00
sun
370a21760c
fix: 限流和并发中间件跳过非 /v1/ 路由,避免监控路径污染计数
2026-08-16 18:50:33 +08:00
sun
f971de6821
chore: 删除无用的预检测试脚本 _preflight.js
...
该脚本仅用于本地测试,不属于项目核心代码,清理冗余文件减少项目杂乱度
2026-08-16 18:43:56 +08:00
sun
0f7102a41d
fix: 补上 dashboard 缺失的 formatBytes 函数定义
2026-08-16 18:41:33 +08:00
sun
ec2b78533d
test: add preflight check test script for cors
...
新增了用于测试CORS预检请求的_node脚本,包含OPTIONS预检请求和实际POST请求的测试逻辑,用于验证接口的跨域配置是否正确。
2026-08-16 18:35:34 +08:00
sun
36e0d87cec
ui: 替换 unpkg 为 bootcdn 国内 CDN
2026-08-16 18:32:58 +08:00
sun
c4e278d544
ui: 重写监控面板,解析Prometheus指标分组展示,移除原始文本iframe
2026-08-16 18:13:04 +08:00
sun
5519697f87
fix: merge case sentence and empty to handle audio frames with empty event field
2026-08-16 18:03:21 +08:00
sun
78bb7d87ab
refactor: remove fallback audio collection in case empty after namespace fix
2026-08-16 17:56:49 +08:00
sun
d516dddf1d
fix: namespace 修正为 UnidirectionalTTS 匹配 HTTP 单向端点
2026-08-16 17:54:43 +08:00
sun
677f606935
fix: 修复上游省略event字段导致音频帧被丢弃的bug
2026-08-16 17:50:02 +08:00
sun
55244e9a45
fix: 修复 response.go switch 语句大括号结构错误
2026-08-16 17:32:00 +08:00
sun
483db85259
fix: 兼容上游 sentence 字段为对象/字符串两种形态,加 debug 打印无 event 元数据行
2026-08-16 17:27:20 +08:00
sun
b4b8ec33ed
docs: 重写README,补充BYTEDANCE_TTS_DEBUG调试日志独立小节
2026-08-16 14:41:07 +08:00
sun
cdd143f7e2
docs: 移除复刻1.0相关内容,仅保留2.0
2026-08-15 19:17:42 +08:00
sun
c84f99a13f
docs: 更新README补充TTS可选参数、调试日志、音频格式说明
2026-08-15 19:12:40 +08:00
sun
155fab6b4b
feat: add debug log control and optimize error response and cors log
...
- add DebugLog global variable controlled by BYTEDANCE_TTS_DEBUG env
- enable debug logs for cors, tts upstream, response parsing etc when debug mode is on
- update tts error response to use standardized json error format
- add dashboard and metrics path to cache-control exempt list
2026-08-15 19:03:37 +08:00
sun
1455e4bf80
fix: 修复 synthesis.go 类型不匹配编译错误 ([]byte→string)
2026-08-15 17:55:13 +08:00
sun
f75a8461d1
chore: 移除文件开头多余的UTF-8 BOM头
...
修复多个文件中存在的隐藏BOM字符问题,包括go.mod、README.md、health.html和.env.example,同时更新go.sum文件的校验和
2026-08-15 15:02:00 +08:00
sun
81fcc9fff4
chore: 清理多余的BOM头并整理依赖与telemetry代码
...
- 移除所有文件开头的多余UTF-8 BOM头
- 简化go.mod依赖,移除未使用的uuid包
- 重构telemetry包:将Meter改为接口并拆分默认实现
2026-08-15 14:38:14 +08:00
sun
5b970f49e1
feat: 实现完整可观测性架构与火山v3适配器重构
...
重构整体架构:
1. 新增telemetry包实现零依赖的Prometheus指标系统
2. 新增metrics包集中管理业务埋点指标
3. 重构火山v3适配器,拆分client/request/response等模块
4. 替换旧的service/stats统计系统为标准指标埋点
5. 新增/metrics观测端点与完整仪表盘支持
功能更新:
- 实现基于IP的限流与并发限制,添加指标埋点
- 重构TTS控制器,支持多格式输出与完整错误分类
- 更新.env.example配置示例,新增多项可选参数
- 替换旧的volcano适配器实现,支持完整的v3 API特性
- 清理冗余代码,移除service/stats与旧adapter实现
2026-08-15 13:30:35 +08:00
sun
07a7dd450c
refactor(tts): 简化火山TTS实现,移除可配置格式采样率等参数
...
重构了火山TTS的适配器与配置逻辑,移除了格式、采样率、model等可配置项,固定使用wav/24000Hz参数,简化请求流程并删除冗余的格式转换、WAV头拼装逻辑,同时更新文档与环境变量配置。
2026-07-01 18:27:07 +08:00
sun
638dcc7721
fix: 更新字节语音合成默认模型为音色复刻路由适配版本
...
更新了默认模型值从seed-tts-2.0-standard为seed-icl-2.0,同步修改了配置检查逻辑、文档说明,修正了复刻音色的使用指引,解决默认模型与复刻资源不匹配导致的55000000错误问题。
2026-07-01 15:02:43 +08:00
sun
7e2d050d51
feat(volcano): add upstream TTS request diagnostic log
...
移除了README中旧的环境配置日志说明部分,新增火山TTS上游请求的诊断日志,打印关键请求参数和请求体用于排查问题
2026-07-01 14:31:40 +08:00
sun
f39c72acbe
refactor(setting): 优化配置启动日志与错误提示
...
1. 移除main.go中重复的TTS配置错误警告
2. 统一日志中文全角逗号格式
3. 新增TTS配置项脱敏掩码函数
4. 完善启动日志的必填项检查和状态展示
5. 调整TTS配置错误的提示文案,明确500路由情况
2026-07-01 00:13:15 +08:00
sun
7e1102902d
refactor(volcano adapter): 重构火山 TTS 适配器请求体结构与错误处理
...
重构请求体为类型安全的结构体实现,替换原有的map动态构造方式;统一错误处理为fmt.Errorf包装原始错误,优化注释与代码格式,提升代码可维护性与可读性。
2026-06-30 23:34:45 +08:00
sun
746da76fa4
chore: 新增os包导入以支持系统信号处理
...
补充导入os包,完善依赖引入完整性
2026-06-30 22:39:26 +08:00
sun
3dc9632c1b
refactor(setting): 集中管理环境配置并新增启动日志汇总
...
1. 将所有环境变量读取逻辑迁移至setting包统一管理,移除各模块直接os.Getenv调用
2. 新增全局配置结构体统一管理服务端口、鉴权、跨域等配置
3. 添加启动期配置汇总日志,方便运维核对环境配置生效情况
4. 重构鉴权和CORS中间件,改为读取全局配置而非直接读取环境变量
5. 优化health端点的环境变量检查逻辑,使用已加载的全局配置而非重复读取环境
2026-06-30 20:55:56 +08:00
sun
0aad65ed78
chore(docker): add compose file version declaration
...
补充docker-compose.yml的版本声明,规范compose文件格式
2026-06-27 23:49:09 +08:00
sun
21b86bfcfe
feat: 新增音频格式与采样率配置,完善OpenAI兼容格式映射
...
1. 新增BYTEDANCE_TTS_FORMAT和BYTEDANCE_TTS_SAMPLE_RATE环境变量配置
2. 实现OpenAI TTS格式到火山API格式的映射转换
3. 自动处理wav格式:内部用pcm请求后封装标准WAV头
4. 动态设置响应Content-Type,适配不同输出格式
5. 更新文档与配置示例,完善日志与错误处理
2026-06-27 23:28:35 +08:00
sun
82cc68e7ee
chore(setting): add check for ALLOWED_ORIGINS environment variable
...
新增对ALLOWED_ORIGINS环境变量的存在性检查,完善环境变量校验逻辑
2026-06-27 14:42:55 +08:00
sun
361a9d6401
fix(middleware): 修复日志输出乱码问题
...
将原本乱码的日志提示替换为简体中文正常文本,提升日志可读性
2026-06-27 14:31:10 +08:00
sun
15b0470cc8
feat(volcano-tts): add support for v3 model parameter
...
1. 新增BYTEDANCE_TTS_MODEL环境变量支持,为火山TTS v3 API配置子模型版本
2. 为复刻音色添加默认兜底模型,修复55000000报错问题
3. 更新文档说明v3 API调用规则与环境变量配置
4. 修正语速转换的范围限制,匹配官方文档规范
2026-06-27 14:09:46 +08:00
sun
bcbd796fa5
docs: 更新README的日志查看文档
...
补充了完整的日志分类、示例和排查技巧,优化日志说明结构
2026-06-26 23:13:03 +08:00
sun
8592843bdf
refactor(tts controller): add detailed request logging for TTS handler
...
新增truncateForLog工具函数处理日志截断,为各个请求校验环节和错误场景补充详细日志记录,包括请求方法、鉴权状态、配置错误、请求体读取、参数校验以及合成失败等场景,同时记录客户端IP、请求路径等上下文信息,方便问题排查。
2026-06-26 23:09:27 +08:00
sun
b93ede29e0
docs: 更新README,添加CORS配置和相关排障说明
...
新增ALLOWED_ORIGINS环境变量文档,补充资源ID匹配错误、PowerShell curl使用的排障内容,更新日志排查项
2026-06-26 22:57:02 +08:00
sun
4aed9667b7
fix(adapter/volcano): 修改火山语音合成的命名空间为UnidirectionalTTS
...
将原BidirectionalTTS命名空间调整为UnidirectionalTTS,适配接口要求
2026-06-26 21:53:46 +08:00
sun
03bb98beb8
fix: 修复日志输出乱码和缺失换行符的问题
...
修复了两处日志问题:一是将乱码的中文提示改为正确的"配置初始化成功",二是为两条警告日志补充了换行符,保证日志输出格式正确。
2026-06-26 21:07:35 +08:00
sun
bc42295ff6
chore(controller/tts): 移除未使用的log导入包
...
删除了tts控制器文件中不再需要的log标准库导入
2026-06-26 20:46:34 +08:00
sun
f704e7d71d
build(docker): 将go基础镜像版本从1.23升级到1.26
...
更新构建镜像使用的golang官方镜像版本,以获取最新的语言特性和安全补丁
2026-06-26 20:43:44 +08:00
sun
61431e00ba
refactor: 重构并优化项目多项功能
...
1. 调整CORS中间件挂载位置,重构CORS处理逻辑
2. 重写IP获取逻辑,增加私有网络IP信任校验
3. 优化日志中间件,移除/health接口单独日志逻辑
4. 改进API密钥未配置时的提示信息
5. 重构volcano TTS调用,新增voice参数支持
6. 优化请求体过大错误处理
7. 完善统计服务,修复环形缓冲区遍历逻辑,新增去重错误日志功能
2026-06-26 19:12:50 +08:00
sun
3d50b6c69d
fix: 修复代码格式、乱码和CORS校验问题
...
1. 修复tts.go中多余的缩进错误
2. 修复main.go和auth.go中的中文乱码问题,修正日志文本
3. 修复CORS校验逻辑,将origin转为小写后再判断协议前缀
4. 修正auth.go中API密钥未配置时的提示逻辑
2026-06-23 10:23:44 +08:00
sun
977e9ccadb
build: 升级go版本到1.26并添加限流中间件
...
1. 调整go.mod将Go版本升级至1.26
2. 新增速率限制和并发限制中间件,将其加入路由中间件链
3. 重构TTS处理逻辑,将限流逻辑迁移至中间件统一处理
4. 优化CORS中间件代码,移除冗余日志和格式调整
2026-06-22 18:13:35 +08:00
sun
b92d3dbc00
fix(middleware/cors): 完善CORS中间件的日志和校验逻辑
...
1. 修复了变量缩进的格式问题
2. 添加初始化时的白名单来源打印
3. 优化origin校验逻辑,兼容大小写的协议前缀
4. 新增各阶段的CORS请求日志
5. 修正日志中的客户端IP字段名
6. 修复文件末尾缺失换行符的问题
2026-06-22 13:47:17 +08:00
sun
b92973cdc9
chore: 移除废弃的tts-api.exe并修复文件头部bom问题
...
删除了不再使用的tts-api.exe可执行文件,同时移除了common/constants.go文件头部多余的BOM头。
2026-05-27 14:19:22 +08:00
sun
be6c2ad34e
Revert "fix: 修复请求体过大处理和冗余代码问题"
...
This reverts commit 23b962a90e .
2026-05-26 10:42:41 +08:00
sun
23b962a90e
fix: 修复请求体过大处理和冗余代码问题
...
1. 修复OpenAI TTS接口的请求体过大错误提示,返回正确的状态码和提示信息
2. 删除volcano适配器中无用的空循环扫描代码
3. 修正constants.go的包声明重复空格问题
2026-05-26 10:41:47 +08:00
sun
9b2a1d1531
feat: 添加安全中间件、优化限流器与API密钥验证
...
1. 新增安全响应头中间件强化请求安全性
2. 使用恒定时间比较修复API密钥验证时序漏洞
3. 新增限流器条目上限配置与自动清理逻辑
4. 优化CORS日志与客户端IP获取逻辑
5. 升级Go构建环境与基础镜像版本
6. 新增非root用户运行容器增强安全性
2026-05-24 15:33:27 +08:00
sun
9c35f780db
功能 (语音合成):新增语音合成请求的模型名校验
...
新增模型名最大长度常量,限定字符上限为 64 位
传入模型名称时,校验名称长度并拦截非法控制字符
移除闲置的 tts-api.exe 可执行文件
2026-05-24 11:52:57 +08:00