How do I monitor microphone input in Linux?

Note: monitoring is not the same as recording and playing what was recorded.

In Windows, I can listen to my own microphone in the following ways:

  1. With some program, which will capture my microphone and send it to my sound card for playing. For example, with ffplay command

    ffplay -f dshow -i audio="Front panel mic (Realtek High Definition Audio)"

    It will produce significant delay, up to several seconds.

  2. With "Listen" option of input device properties

    enter image description here

    It will produce a smaller delay, up to one second.

  3. With sound card widget

    enter image description here

    It will produce ZERO delay. I think, this will make input sound to go to output without leaving sound card, but not sure.

I need option #2 in Linux command line.

  • If you are using PulseAudio, there is the Pulse Audio Volume Meter. – NickD Sep 24 '20 at 12:55

You should be able to monitor your microphone with PulseAudio's loopback module. Module should automatically create loopback outputs for available input devices. To load the module manually

pactl load-module module-loopback

To make the change persistent, append /etc/pulse/default.pa with

load-module module-loopback
  • Although it works, the delay is about 1 second. Is there a way to improve performance? – Alexander Abakumov Mar 15 at 3:05
  • 1
    @AlexanderAbakumov you may want to ask a separate question for this (you can reference this answer), where you describe exactly what you've done, and your audio setup. When I use module-loopback, the delay is not noticable. – dirkt Mar 15 at 6:32
  • @AlexanderAbakumov you could try adjusting the latency parameter in the loopback module. – sebasth Mar 15 at 10:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.