fix(tts): voice 命中 log 跟合成 log 一致打码
Bug 报告: 同一次请求, controller/tts.go:193 输出明文 speaker [tts] voice=chun 命中 (speaker=S_G8tEKnaJ1 ...) 但 adapter/volcano/synthesis.go:148 输出打码 TTS 合成成功 - 音色=S_G8****naJ1 不一致 — 同一进程同一请求, 一处裸奔一处打码, 脱裤子放屁。 修法: 全部用 telemetry.MaskSpeaker (前4+****+后4)。 不动 telemetry.SpeakerLabel (sha1[:8] 不可逆哈希, /metrics 用, 保留)。 注意: server log 仍能看到带前缀/后缀的 speaker (e.g. S_G8****naJ1), 但 *完整* speaker 不可见, 防 log 泄漏给非 root 用户。 如果 log 路径对外可读, 仍需考虑更严的方案 (e.g. 整体不 log speaker), 但自托管单用户场景下, 这个折中 OK。 未 push (待用户 push)
This commit is contained in:
+1
-1
@@ -190,7 +190,7 @@ func OpenaiTTSHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
opts.Model = v.Model
|
opts.Model = v.Model
|
||||||
}
|
}
|
||||||
log.Printf("[tts] voice=%s 命中 (speaker=%s resource=%s model=%s) - 客户端=%s",
|
log.Printf("[tts] voice=%s 命中 (speaker=%s resource=%s model=%s) - 客户端=%s",
|
||||||
req.Voice, v.Speaker, v.ResourceID, v.Model, middleware.GetClientIP(r))
|
req.Voice, telemetry.MaskSpeaker(v.Speaker), v.ResourceID, v.Model, middleware.GetClientIP(r))
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(r.Context(), setting.TTSTimeout)
|
ctx, cancel := context.WithTimeout(r.Context(), setting.TTSTimeout)
|
||||||
|
|||||||
Reference in New Issue
Block a user