错误修复:音频失真和 PipeWire 挂起 (Linux)

本文档介绍如何解决将 SL5-aura-service 与 OBS、AnyDesk 或高频 TTS 流等其他媒体应用程序一起使用时可能发生的音频失真 (“klirren”)、机器人语音伪影和系统音频挂起。

## 症状

  • 语音输出/输入声音失真、有金属味或“嗡嗡声”。

  • 系统音频挂起并显示消息:“正在建立与 PulseAudio 的连接”或“请稍候”。

  • 高 CPU 负载或并发流使用后的总音频丢失。

  • 日志日志显示:spa.alsa: hw:X: snd_pcm_status 错误:没有这样的设备

根本原因

在 Manjaro 和其他现代 Linux 发行版上,PipeWire 管理音频。失真通常源于:

  1. 缓冲区欠载: 并发流之间的冲突(例如,AnyDesk 在 TTS/OBS 运行时捕获音频)。

  2. 采样率不匹配: 44.1kHz 和 48kHz 之间频繁切换。

  3. USB 时序问题: 高总线负载导致 USB 耳机(如 Plantronics/Poly)暂时断开连接。


解决方案

1. 立即恢复(“核”重置)

如果音频堆栈冻结或失真,请终止所有与音频相关的进程。他们将立即自动重新启动。

代码_块_0

2.预防和稳定设置

禁用 AnyDesk 音频

AnyDesk 经常尝试连接音频设备,从而导致硬件冲突。

  • 操作: 打开 AnyDesk 设置 -> 音频 -> 禁用 “传输音频”“再现音频”

修复 PipeWire 采样率(推荐)

强制 PipeWire 保持在 48kHz,以避免在 TTS 播放期间重新采样伪影。

1.创建config目录:mkdir -p ~/.config/pipewire 2.复制默认配置:cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/ 3. 编辑 ~/.config/pipewire/pipewire.conf 并设置: 代码_块_1 4、重启服务: 代码_块_2


3. 后期制作恢复 (FFmpeg)

如果您录制了一个会话并且音频失真(“杂音”),请使用以下“ffmpeg”过滤器链来修复文件。

推荐的修复命令

此命令应用去削波器、降噪和低通滤波器来消除高频数字伪影,而无需重新编码视频。

经过测试并且非常好:

代码_块_3

可能会更好(未经测试):

代码_块_4

未测试: 代码_块_5

过滤器细分:

  • adeclip:四舍五入数字削波尖峰。

  • afftdn:减少基于 FFT 的数字噪声。

  • lowpass=f=3500:截止 3.5kHz 以上的频率,其中最常出现“回响”(使声音更清晰/更温暖)。

  • volume=1.8:补偿过滤期间的体积损失。

  • -c:v copy:保持原始视频质量(极快)。


调试工具

要在开发过程中实时监控音频健康状况:

  • pw-top:显示实时错误(ERR 列)和缓冲区状态。

  • journalctl --user -u pipeline:检查硬件断开连接。