我的笔记本电脑内置麦克风录制或使用的任何声音都会失真。我的声音几乎听不见。但是,有一个非常明显的静态脉冲声。麦克风录制的音频波形类似于正弦波,每秒大约有 2 或 3 个波。有时麦克风会完全停止接收任何输入,但重新启动会使其恢复到录制静态声音的状态。
当我使用 arecord 或任何其他录音应用程序录音时,我自己就能听到这种声音,而且有人告诉我,我在使用 Skype 等各种不同的语音聊天应用程序时,声音听起来非常失真。
我尝试过的解决方案是调整 GNOME 设置中的麦克风输入音量滑块,并更改 pulseaudio 中的默认采样率以匹配笔记本电脑的硬件这里。
我在多个不同的 Linux 发行版中都遇到过这种情况,但麦克风在 Windows 中工作正常。我尝试在最新版本的 Ubuntu 和 Fedora 上进行这些修复,但问题都没有得到解决。
该笔记本电脑是联想 Yoga 920,根据记录,麦克风硬件是:
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC298 Analog [ALC298 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
非常感谢有关如何解决该问题的任何指导。
答案1
我在 Kubuntu 18.04 上遇到了同样的问题。我的麦克风设备名为“alsa_input.pci-0000_00_1f.3.analog-stereo”,执行时推断:pacmd list-sources | grep 'name:.*input'
。您可以找到修复该问题的主要参考资料这里,您链接的那段文字下方有一些段落。编辑所有 /usr/share/pulseaudio/alsa-mixer/paths/analog-input*.conf 文件解决了我遇到的问题。我可以与您分享一个简单的 bash 脚本,我用它来自动化该过程:
#!/bin/bash
grep -nP "(Element Capture)|(Element \w+ Mic)|(Element Mic)" /usr/share/pulseaudio/alsa-mixer/paths/analog-input*.conf | while IFS='' read -r LINE || [ -n "${LINE}" ]; do
IFS=':' read -r -a array <<< "${LINE}"
path="${array[0]}";
num="${array[1]}";
element="${array[2]}";
for i in $(seq 5 $END); do
param="$(sed -n "$((num + i))p" < "$path")"
if [[ $param == "volume ="* ]]; then
echo "processing line $path:$((num + i))";
echo "replacing <$param> with <volume = zero>";
sed -i "$((num + i))s/.*/volume = zero/" "$path";
fi
done
done
重新启动 PulseAudio 以应用更改:
pulseaudio -k
pulseaudio --start
最后通过录制您的声音并播放来检查:
arecord -f cd -d 10 test-mic.wav
aplay test-mic.wav