refactor: 重构并优化项目多项功能

1. 调整CORS中间件挂载位置,重构CORS处理逻辑
2. 重写IP获取逻辑,增加私有网络IP信任校验
3. 优化日志中间件,移除/health接口单独日志逻辑
4. 改进API密钥未配置时的提示信息
5. 重构volcano TTS调用,新增voice参数支持
6. 优化请求体过大错误处理
7. 完善统计服务,修复环形缓冲区遍历逻辑,新增去重错误日志功能
This commit is contained in:
sun
2026-06-26 19:12:50 +08:00
parent 3d50b6c69d
commit 61431e00ba
9 changed files with 161 additions and 82 deletions
+13 -9
View File
@@ -13,7 +13,6 @@ import (
"time"
"github.com/google/uuid"
"github.com/volcano-tts/tts-api/common"
"github.com/volcano-tts/tts-api/dto"
)
@@ -24,7 +23,6 @@ type HTTPClient struct {
func NewHTTPClient() *HTTPClient {
return &HTTPClient{
client: &http.Client{
Timeout: common.DefaultTimeout,
Transport: &http.Transport{
MaxIdleConns: 100,
MaxIdleConnsPerHost: 20,
@@ -52,19 +50,25 @@ func (h *HTTPClient) PostStream(url string, headers map[string]string, body []by
}
func convertSpeedToSpeechRate(speed float64) int {
if speed <= 0.5 {
return -50
rate := int((speed - 1.0) * 100)
if rate < -200 {
rate = -200
}
if speed >= 2.0 {
return 100
if rate > 500 {
rate = 500
}
return int((speed - 1.0) * 100)
return rate
}
func Synthesis(config *dto.ByteDanceTTSConfig, httpClient *HTTPClient, text string, speed float64) (*dto.SynthesisResult, error) {
func Synthesis(config *dto.ByteDanceTTSConfig, httpClient *HTTPClient, text string, speed float64, voice string) (*dto.SynthesisResult, error) {
reqID := uuid.NewString()
speechRate := convertSpeedToSpeechRate(speed)
speaker := config.Speaker
if voice != "" {
speaker = voice
}
params := map[string]interface{}{
"user": map[string]interface{}{
"uid": "uid",
@@ -72,7 +76,7 @@ func Synthesis(config *dto.ByteDanceTTSConfig, httpClient *HTTPClient, text stri
"namespace": "BidirectionalTTS",
"req_params": map[string]interface{}{
"text": text,
"speaker": config.Speaker,
"speaker": speaker,
"audio_params": map[string]interface{}{
"format": "wav",
"sample_rate": 24000,