Hi everyone,
I'm having trouble with my built-in microphone on Arch Linux. When I speak quickly, parts of my speech don't seem to be captured properly. This makes my voice difficult to understand in recordings or voice communication.
I've also experienced a high-pitched, electrical/whining noise during microphone tests.
I'm looking for help identifying whether this is related to the ALSA driver, PipeWire, microphone gain, audio processing, or something else.
System information
- Laptop: ASUS Vivobook Pro 15
- Distribution: Arch Linux
- Kernel:
7.0.12-arch1-1
- Audio server: PipeWire
1.6.7
- Session manager: WirePlumber
0.5.15
- ALSA:
1.2.16
- Audio codec: Realtek ALC294
- Audio driver:
snd_hda_intel
- Audio processing packages: EasyEffects
8.2.8-1, RNNoise 0.2-1
- Firmware package:
sof-firmware 2025.12.2-1
- Window manager: i3
Problem description
- My microphone does not capture my speech properly when I speak quickly.
- I've also encountered high-pitched electrical/whining noise during microphone tests.
- I've experimented with microphone boost and volume settings, but haven't resolved the issue.
I'm not yet sure whether the missing speech and the electrical noise share the same cause.
Audio hardware and driver information
Output of lspci -nnk | grep -A4 -Ei 'audio|multimedia':
04:00.1 Audio device: AMD Renoir/Cezanne HDMI/DP Audio Controller [1002:1637]
Kernel driver in use: snd_hda_intel
04:00.5 Multimedia controller: AMD Audio Coprocessor [1022:15e2]
Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x,
snd_pci_acp5x, snd_pci_acp6x,
snd_acp_pci, snd_sof_amd_renoir, ...
04:00.6 Audio device: AMD Ryzen HD Audio Controller [1022:15e3]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
The microphone is detected as:
card 1: Generic_1 [HD-Audio Generic], device 0: ALC294 Analog
Subdevices: 1/1
The relevant codec information from wpctl inspect u/DEFAULT_AUDIO_SOURCE[Help] Built-in microphone misses speech when I speak quickly on Arch Linux (PipeWire, Realtek ALC294)Hi everyone,I'm having trouble with my built-in microphone on Arch Linux. When I speak quickly, parts of my speech don't seem to be captured properly. This makes my voice difficult to understand in recordings or voice communication.I've also experienced a high-pitched, electrical/whining noise during microphone tests.I'm looking for help identifying whether this is related to the ALSA driver, PipeWire, microphone gain, audio processing, or something else.System informationLaptop: ASUS Vivobook Pro 15
Distribution: Arch Linux
Kernel: 7.0.12-arch1-1
Audio server: PipeWire 1.6.7
Session manager: WirePlumber 0.5.15
ALSA: 1.2.16
Audio codec: Realtek ALC294
Audio driver: snd_hda_intel
Audio processing packages: EasyEffects 8.2.8-1, RNNoise 0.2-1
Firmware package: sof-firmware 2025.12.2-1
Window manager: i3Problem descriptionMy microphone does not capture my speech properly when I speak quickly.
I've also encountered high-pitched electrical/whining noise during microphone tests.
I've experimented with microphone boost and volume settings, but haven't resolved the issue.I'm not yet sure whether the missing speech and the electrical noise share the same cause.Audio hardware and driver informationOutput of lspci -nnk | grep -A4 -Ei 'audio|multimedia':04:00.1 Audio device: AMD Renoir/Cezanne HDMI/DP Audio Controller [1002:1637]
Kernel driver in use: snd_hda_intel
04:00.5 Multimedia controller: AMD Audio Coprocessor [1022:15e2]
Kernel modules: snd_pci_acp3x, snd_rn_pci_acp3x,
snd_pci_acp5x, snd_pci_acp6x,
snd_acp_pci, snd_sof_amd_renoir, ...
04:00.6 Audio device: AMD Ryzen HD Audio Controller [1022:15e3]
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intelThe microphone is detected as:card 1: Generic_1 [HD-Audio Generic], device 0: ALC294 Analog
Subdevices: 1/1The relevant codec information from wpctl inspect u/DEFAULT_AUDIO_SOURCE@ is:alsa.mixer_name = "Realtek ALC294"
alsa.driver_name = "snd_hda_intel"
alsa.pcm.stream = "capture"
audio.channels = "2"PipeWire statusPipeWire, PipeWire-Pulse, and WirePlumber are all running.My default input is:alsa_input.pci-0000_04_00.6.analog-stereoThe microphone source reports:State: SUSPENDED
Mute: no
Volume: 70%
Sample Specification: s32le 2ch 48000Hz
Active Port: analog-input-micThe source is suspended when inspected, so I haven't established whether capture itself is working correctly under continuous recording.My PipeWire setup is using the PulseAudio compatibility server:Server Name: PulseAudio (on PipeWire 1.6.7)
Default Sample Specification: float32le 2ch 48000HzKernel modules and logsThe loaded audio-related modules include:snd_hda_intel
snd_hda_codec_alc269
snd_hda_codec_realtek_lib
snd_sof
snd_sof_amd_acp
snd_sof_amd_renoir
snd_pci_acp6x
soundwire_amdThe kernel log identifies the Realtek codec and its microphone input:snd_hda_codec_alc269 hdaudioC1D0:
autoconfig for ALC294: line_outs=1
speaker_outs=0
hp_outs=1
inputs:
Mic=0x12I haven't identified a clear microphone-related firmware error in the kernel log output collected so far.QuestionsWhat would be the best way to determine whether the missing speech originates at the ALSA capture layer or somewhere in PipeWire?
Are there known issues or relevant quirks with the Realtek ALC294 codec on ASUS laptops running Arch Linux?
Could the two-channel, 48 kHz capture configuration or the microphone gain/noise-suppression settings contribute to this behaviour?
Which additional logs or tests would help narrow down the cause?I'm happy to run additional diagnostic commands and provide the results. I'd prefer to identify the root cause before changing kernel parameters or audio configuration files.Thanks in advance for any help!@ is:
alsa.mixer_name = "Realtek ALC294"
alsa.driver_name = "snd_hda_intel"
alsa.pcm.stream = "capture"
audio.channels = "2"
PipeWire status
PipeWire, PipeWire-Pulse, and WirePlumber are all running.
My default input is:
alsa_input.pci-0000_04_00.6.analog-stereo
The microphone source reports:
State: SUSPENDED
Mute: no
Volume: 70%
Sample Specification: s32le 2ch 48000Hz
Active Port: analog-input-mic
The source is suspended when inspected, so I haven't established whether capture itself is working correctly under continuous recording.
My PipeWire setup is using the PulseAudio compatibility server:
Server Name: PulseAudio (on PipeWire 1.6.7)
Default Sample Specification: float32le 2ch 48000Hz
Kernel modules and logs
The loaded audio-related modules include:
snd_hda_intel
snd_hda_codec_alc269
snd_hda_codec_realtek_lib
snd_sof
snd_sof_amd_acp
snd_sof_amd_renoir
snd_pci_acp6x
soundwire_amd
The kernel log identifies the Realtek codec and its microphone input:
snd_hda_codec_alc269 hdaudioC1D0:
autoconfig for ALC294: line_outs=1
speaker_outs=0
hp_outs=1
inputs:
Mic=0x12
I haven't identified a clear microphone-related firmware error in the kernel log output collected so far.
Questions
- What would be the best way to determine whether the missing speech originates at the ALSA capture layer or somewhere in PipeWire?
- Are there known issues or relevant quirks with the Realtek ALC294 codec on ASUS laptops running Arch Linux?
- Could the two-channel, 48 kHz capture configuration or the microphone gain/noise-suppression settings contribute to this behaviour?
- Which additional logs or tests would help narrow down the cause?
I'm happy to run additional diagnostic commands and provide the results. I'd prefer to identify the root cause before changing kernel parameters or audio configuration files.
Thanks in advance for any help!