debug(audio): 添加 Resampler 数据读取测试
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/tag/woodpecker Pipeline was successful
为诊断 TTS 音频播放停滞问题,添加手动测试代码验证 Resampler 是否能正常读取音频数据: - 在 speaker.Play() 前尝试从 Resampler 读取 10 个样本 - 打印读取状态和样本数据,验证数据流是否正常 - 重新创建 Resampler 确保测试不影响正常播放 此调试代码用于确认问题是在 Resampler/WAV 解码层,还是在 speaker/mixer 层 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -39,6 +39,16 @@ func PlayWav(c context.Context, r io.Reader) {
|
|||||||
s := beep.Resample(4, format.SampleRate, DefaultSampleRate, streamer)
|
s := beep.Resample(4, format.SampleRate, DefaultSampleRate, streamer)
|
||||||
|
|
||||||
ctrl := &beep.Ctrl{Streamer: s}
|
ctrl := &beep.Ctrl{Streamer: s}
|
||||||
|
|
||||||
|
// 测试 Streamer 是否可以正常读取数据
|
||||||
|
testSamples := make([][2]float64, 10)
|
||||||
|
n, ok := s.Stream(testSamples)
|
||||||
|
zap.S().Debugf("测试读取 Resampler: 读取 %d 样本, ok=%v, 数据=%v", n, ok, testSamples[:n])
|
||||||
|
|
||||||
|
// 重置 streamer
|
||||||
|
s = beep.Resample(4, format.SampleRate, DefaultSampleRate, streamer)
|
||||||
|
ctrl.Streamer = s
|
||||||
|
|
||||||
done := make(chan struct{})
|
done := make(chan struct{})
|
||||||
speaker.Play(beep.Seq(ctrl, beep.Callback(func() {
|
speaker.Play(beep.Seq(ctrl, beep.Callback(func() {
|
||||||
zap.S().Debugln("音频播放完成")
|
zap.S().Debugln("音频播放完成")
|
||||||
|
|||||||
Reference in New Issue
Block a user