From 544716fe2749e4e5b0e64111dbf2c3158bc559ad Mon Sep 17 00:00:00 2001 From: hhs <386998068@qq.com> Date: Sun, 14 Jun 2026 11:55:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20pipeline.go=20TTS=20=E8=BE=93=E5=87=BA?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F/=E9=87=87=E6=A0=B7=E7=8E=87=E4=BB=8E?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - New() 改为接收 *config.Config 参数 - OutputFmt/SampleRate 从 config.AI.TTS 读取 --- backend/internal/orchestrator/pipeline.go | 41 ++++++++++++----------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/backend/internal/orchestrator/pipeline.go b/backend/internal/orchestrator/pipeline.go index fd84c68..048055c 100644 --- a/backend/internal/orchestrator/pipeline.go +++ b/backend/internal/orchestrator/pipeline.go @@ -11,6 +11,7 @@ import ( "github.com/hhs/camtalk/internal/ai/llm" "github.com/hhs/camtalk/internal/ai/stt" "github.com/hhs/camtalk/internal/ai/tts" + "github.com/hhs/camtalk/internal/config" "github.com/hhs/camtalk/internal/logger" "github.com/hhs/camtalk/internal/models" "github.com/hhs/camtalk/internal/session" @@ -18,13 +19,15 @@ import ( // Pipeline 实现 Orchestrator 接口,管理 STT → LLM → TTS 流式管道。 type Pipeline struct { - sttService stt.Service - llmService llm.Service - ttsService tts.Service - sessionMgr session.Manager - model string // LLM 模型名,用于 llm_done 上报 - ttsVoice string // TTS 音色 - ttsSpeed float64 // TTS 语速 + sttService stt.Service + llmService llm.Service + ttsService tts.Service + sessionMgr session.Manager + model string // LLM 模型名,用于 llm_done 上报 + ttsVoice string // TTS 音色 + ttsSpeed float64 // TTS 语速 + ttsOutputFmt string // TTS 输出格式 + ttsSampleRate int // TTS 输出采样率 } // New 创建 Pipeline 实例。 @@ -33,18 +36,18 @@ func New( llmService llm.Service, ttsService tts.Service, sessionMgr session.Manager, - model string, - ttsVoice string, - ttsSpeed float64, + cfg *config.Config, ) *Pipeline { return &Pipeline{ - sttService: sttService, - llmService: llmService, - ttsService: ttsService, - sessionMgr: sessionMgr, - model: model, - ttsVoice: ttsVoice, - ttsSpeed: ttsSpeed, + sttService: sttService, + llmService: llmService, + ttsService: ttsService, + sessionMgr: sessionMgr, + model: cfg.AI.LLM.Model, + ttsVoice: cfg.AI.TTS.Voice, + ttsSpeed: cfg.AI.TTS.Speed, + ttsOutputFmt: cfg.AI.TTS.OutputFormat, + ttsSampleRate: cfg.AI.TTS.SampleRate, } } @@ -314,8 +317,8 @@ func (p *Pipeline) synthesizeTTS( ttsStream, err := p.ttsService.SynthesizeStream(ctx, sentenceCh, tts.Options{ Voice: p.ttsVoice, Speed: p.ttsSpeed, - OutputFmt: "mp3", - SampleRate: 24000, + OutputFmt: p.ttsOutputFmt, + SampleRate: p.ttsSampleRate, }) if err != nil { log.Errorw("TTS 合成启动失败", "error", err)