Любой звук, записанный или используемый с помощью встроенных микрофонов моего ноутбука, искажен. Мой голос еле слышен. Однако есть очень заметный статический пульсирующий звук. Форма звуковой волны записи с микрофона напоминает синусоидальную волну примерно с 2 или 3 волнами в секунду. Иногда микрофон просто перестает принимать какие-либо входные данные, но перезагрузка вернет его в состояние, в котором он записывает статический звук.
Я сам слышу это при записи с помощью Arecord или любого другого записывающего приложения, и мне сказали, что я ужасно искажаю звук в различных приложениях голосового чата, таких как Skype.
Решением, которое я предпринял, является регулировка ползунка громкости микрофона в настройках GNOME и изменение частоты дискретизации по умолчанию в pulseaudio в соответствии с аппаратным обеспечением портативного компьютера, как указано здесь .
Я испытал это в нескольких разных дистрибутивах Linux, но микрофоны отлично работают в Windows. Я попытался исправить эти исправления в самых последних выпусках Ubuntu и Fedora, но ни в том, ни в другом случае проблема не была решена.
Ноутбук - это Lenovo Yoga 920, а оборудование микрофона согласно arecord:
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC298 Analog [ALC298 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
Мы будем благодарны за любые рекомендации по решению проблемы.
У меня возникла та же проблема на Kubuntu 18.04. Мое микрофонное устройство называется "alsa_input.pci-0000_00_1f.3.analog-stereo", как предполагается, выполняя: pacmd list-sources | grep 'имя:.*input'
.
Вы можете найти основную ссылку на решение проблемы здесь, несколько абзацев ниже того, на который вы ссылаетесь.
Редактирование всех файлов /usr/share/pulseaudio/alsa-mixer/paths/analog-input*.conf устранило проблему в моем случае.
Я могу поделиться с вами простым сценарием 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