|
|
6ac23c28f1
|
feat(audio): 添加单声道转立体声转换功能
ci/woodpecker/tag/woodpecker Pipeline was successful
- 新增 monoToStereoReader 将单声道 WAV 实时转换为立体声
- PlayWav 自动检测单声道并应用转换管线
- 添加完整的单元测试覆盖转换逻辑
- 整理 import 顺序(goimports)
Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
|
2026-04-09 10:34:45 +08:00 |
|
|
|
ec168be827
|
feat(audio): 使用 Windowed Sinc 高质量重采样器替代线性插值
ci/woodpecker/tag/woodpecker Pipeline failed
统一音频输出采样率为 44100Hz,使用 go-audio-resampler 库实现
Windowed Sinc + Polyphase FIR 算法(VeryHigh 28-bit 精度),
替代原有的线性插值透传方案。
主要变更:
- 新增 sincResampler:三阶段 Read 循环(填充→处理→Flush)
- 双缓冲区架构避免输出样本丢失,复用内存减少 GC 压力
- WAV/MP3/BGM 播放管线全部接入 Sinc 重采样器
- 移除旧的 linearResampler 和透传模式
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 01:35:04 +08:00 |
|
|
|
788327047c
|
feat(audio): 使用 oto/v3 重构音频播放系统,移除 beep/v2 依赖
核心变更:
- 实现全局 oto.Context 单例管理(sync.Once)
- 实现一次性播放:PlayWav/PlayMP3(支持 context 取消)
- 实现 BGM 循环播放:PlayMP3Loop(atomic.Bool + WaitGroup)
- 迁移所有业务层到新 API(TTS/BGM/待机音频)
- 添加完整的单元测试(6/6 通过)
技术栈:
- oto/v3 v3.3.2(低级音频播放)
- hajimehoshi/go-mp3 v0.3.4(MP3 解码)
- youpy/go-wav v0.3.2(WAV 解码)
移除依赖:
- gopxl/beep/v2 及所有相关依赖
优化:
- 流式播放,无需预先加载
- 并发安全,无竞态条件
- 资源管理清晰(defer cleanup)
- Sleep 间隔优化(1ms → 10ms,降低 CPU 占用)
|
2026-04-08 19:21:48 +08:00 |
|