Skip to main content
← Back to Blog
19 min readBrassTranscripts Team

How to Record Conversations on Linux: Complete Guide for 2025

Recording conversations on Linux has evolved significantly with modern audio systems like PipeWire and improved application support. Whether you're a developer documenting technical discussions, a researcher conducting interviews, or a content creator capturing conversations for transcription, Linux offers powerful, flexible, and professional-grade recording solutions.

⚠️ Important Legal Notice: Always ensure you comply with federal and state laws regarding conversation recording. Many jurisdictions require consent from all parties before recording. See our Legal Considerations section below for detailed information.

Table of Contents

Modern Linux Audio Architecture (2025)

Understanding Linux audio systems is crucial for effective conversation recording, as the landscape has changed significantly in recent years.

PipeWire: The New Standard

PipeWire has rapidly become the default audio system on modern Linux distributions, replacing PulseAudio on Fedora (since 34), Ubuntu (since 22.10), and many other distributions.

PipeWire Advantages for Recording:

  • Unified audio/video handling for complex recording scenarios
  • Low-latency capabilities suitable for professional audio work
  • Better hardware compatibility with modern audio devices
  • Simplified configuration compared to traditional ALSA/PulseAudio setups
  • Native support for professional audio applications

Checking Your Audio System:

# Check if PipeWire is running
systemctl --user status pipewire

# Check available audio devices
pw-cli list-objects | grep node.name

PulseAudio: Legacy but Still Functional

PulseAudio remains in use on older distributions and provides reliable conversation recording capabilities.

PulseAudio Recording Features:

  • Monitor sources for system audio capture
  • Input/output routing for complex recording setups
  • Volume control per application for balanced recording
  • Network audio streaming for distributed recording scenarios

ALSA: Low-Level Audio Foundation

ALSA (Advanced Linux Sound Architecture) provides the kernel-level audio support that other systems build upon.

Direct ALSA Usage:

  • Hardware-level control for professional audio interfaces
  • Minimal latency for time-sensitive recording applications
  • Command-line recording with arecord for automated setups

Built-in and Command-Line Recording Tools

Linux distributions include powerful command-line tools for conversation recording that provide flexibility and scriptability.

arecord: ALSA Recording Utility

arecord is the standard ALSA recording utility available on virtually all Linux distributions.

Basic Recording with arecord:

# List available recording devices
arecord -l

# Record with high quality settings
arecord -f cd -t wav -D hw:0,0 conversation.wav

# Record with specific duration (60 seconds)
arecord -f cd -t wav -d 60 meeting_audio.wav

Advanced arecord Options:

# Professional quality recording (48kHz, 24-bit)
arecord -f S24_LE -r 48000 -c 2 -t wav professional_recording.wav

# Monitor recording levels in real-time
arecord -f cd -t wav -V mono recording.wav

FFmpeg: Versatile Audio/Video Recording

FFmpeg provides comprehensive audio recording capabilities with extensive format support.

FFmpeg Audio Recording:

# Record from default audio input
ffmpeg -f alsa -i default -t 300 -c:a flac conversation.flac

# Record system audio (PulseAudio monitor)
ffmpeg -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor system_audio.wav

# Record both microphone and system audio simultaneously
ffmpeg -f pulse -i default -f pulse -i alsa_output.pci-0000_00_1f.3.analog-stereo.monitor -filter_complex amix=inputs=2:duration=longest combined_audio.wav

parec: PulseAudio Recording

parec is PulseAudio's command-line recording utility for capturing audio streams.

PulseAudio Recording Commands:

# List available sources
pactl list sources short

# Record from microphone
parec --device=alsa_input.pci-0000_00_1f.3.analog-stereo conversation.wav

# Record system playback (monitor source)
parec --device=alsa_output.pci-0000_00_1f.3.analog-stereo.monitor system_capture.wav

GUI Audio Recording Applications

For users preferring graphical interfaces, Linux offers several excellent recording applications with professional features.

Audacity: Professional Cross-Platform Recording

Audacity remains the gold standard for audio recording and editing on Linux, with excellent support for conversation recording.

Installing Audacity on Linux:

# Ubuntu/Debian
sudo apt install audacity

# Fedora
sudo dnf install audacity

# Arch Linux
sudo pacman -S audacity

# Flatpak (universal)
flatpak install flathub org.audacityteam.Audacity

Configuring Audacity for System Audio Recording:

  1. Set Audio Host to ALSA in Audacity's device toolbar
  2. Select recording device with "Monitor" in the name for system audio
  3. Choose "pulse" as recording device for PulseAudio/PipeWire systems
  4. Configure sample rate to 44.1 kHz or 48 kHz for optimal quality
  5. Enable monitoring to visualize recording levels

Advanced Audacity Setup for Conversations:

  • Multi-track recording for separate participant channels
  • Real-time effects for noise reduction during recording
  • Level meters for optimal gain staging
  • Automatic recording with sound activation

OBS Studio: Streaming and Recording Platform

OBS Studio provides professional recording capabilities particularly useful for screen-sharing conversations and video calls.

Installing OBS Studio:

# Ubuntu/Debian
sudo apt install obs-studio

# Fedora
sudo dnf install obs-studio

# Flatpak
flatpak install flathub com.obsproject.Studio

OBS Audio Configuration for Conversations:

  • Desktop Audio capture for system sound recording
  • Microphone/Auxiliary Audio for local voice recording
  • Application-specific capture for VoIP applications
  • Advanced filters for real-time audio enhancement

Audio Recorder: Simple GUI Solution

Audio Recorder provides a user-friendly interface for basic conversation recording needs.

Features:

  • Multiple input source selection including Skype and system audio
  • Automatic format detection and conversion
  • Scheduled recording capabilities
  • Simple interface ideal for non-technical users

System Audio and VoIP Recording

Recording conversations from applications like Discord, Zoom, or browser-based video calls requires specific configuration techniques.

PipeWire System Audio Recording

Modern PipeWire Setup:

# List available recording sources
pw-cli list-objects | grep -A 5 -B 5 "audio.source"

# Record system output using FFmpeg
ffmpeg -f pulse -i @DEFAULT_MONITOR@ system_recording.wav

PipeWire Virtual Devices:

  • Monitor sources automatically created for each output device
  • Virtual microphones for application-specific routing
  • Loopback connections for complex recording scenarios

PulseAudio System Audio Recording

Traditional PulseAudio Configuration:

  1. Open PulseAudio Volume Control (pavucontrol)
  2. Navigate to Recording tab during active recording session
  3. Select "Monitor" source from the appropriate output device
  4. Adjust levels for optimal recording quality

Command-Line PulseAudio Recording:

# Create a virtual audio device for recording
pactl load-module module-null-sink sink_name=recording_sink
pactl load-module module-loopback source=recording_sink.monitor sink=@DEFAULT_SINK@

# Record from the virtual device
parec --device=recording_sink.monitor conversation.wav

VoIP Application Recording

Discord Recording:

  • Use OBS Studio with application audio capture
  • Configure Audacity with PulseAudio monitor sources
  • Browser-based Discord: Use system audio recording methods

Zoom on Linux:

  • Built-in Zoom recording when available
  • System audio capture for local recording backup
  • Screen recording with audio using OBS Studio

Browser-Based Video Calls:

  • Tab audio isolation using browser extensions
  • System monitor recording captures all browser audio
  • Application-specific routing with PipeWire

Professional Audio Setup

For high-quality conversation recording, proper hardware and software configuration ensures optimal results for AI transcription processing.

Audio Interface Configuration

USB Audio Interface Setup:

# Check for recognized audio interfaces
cat /proc/asound/cards

# List detailed device information
aplay -l && arecord -l

# Test audio interface recording
arecord -D hw:CARD=Interface,DEV=0 -f S24_LE -r 48000 test_recording.wav

Professional Audio Interface Benefits:

  • Lower latency for real-time monitoring
  • Higher quality preamps for cleaner recordings
  • Multiple input channels for complex recording scenarios
  • Phantom power for professional condenser microphones

JACK Audio Connection Kit

For professional audio applications, JACK provides ultra-low latency and flexible routing capabilities.

Installing and Configuring JACK:

# Install JACK
sudo apt install jackd2 qjackctl  # Ubuntu/Debian
sudo dnf install jack-audio-connection-kit qjackctl  # Fedora

# Start JACK with optimal settings
jackd -d alsa -r 48000 -p 128

JACK Recording Workflow:

  • Connect applications using QjackCtl patchbay
  • Route audio sources to recording applications
  • Minimize latency for real-time conversation monitoring

High-Quality Recording Settings

Optimal Recording Parameters:

  • Sample Rate: 48 kHz for professional quality, 44.1 kHz acceptable
  • Bit Depth: 24-bit for professional work, 16-bit adequate for conversations
  • Format: WAV or FLAC for uncompressed quality
  • Channels: Mono for single speaker, stereo for multiple participants

File Format Recommendations:

# Professional quality with FFmpeg
ffmpeg -f alsa -i hw:0 -c:a flac -sample_fmt s24 -ar 48000 professional.flac

# Optimized for transcription
ffmpeg -f pulse -i default -c:a pcm_s16le -ar 44100 transcription_ready.wav

Recording conversations on Linux requires the same legal compliance as other operating systems, with additional considerations for technical implementation.

Federal and State Law Compliance

Federal Requirements: Under 18 U.S. Code Section 2511, the United States follows one-party consent at the federal level for conversation recording.

State-Specific Laws:

  • One-party consent states: Recording permitted when you're a conversation participant
  • All-party consent states: Require consent from all participants (11 states including California, Florida, Illinois)
  • Cross-jurisdiction calls: Follow the strictest applicable law

Automated Consent Recording:

#!/bin/bash
# Script to record consent before conversation
echo "This conversation will be recorded. Press Enter to consent or Ctrl+C to exit."
read consent
echo "Recording started at $(date)" >> recording_log.txt
arecord -f cd -t wav "conversation_$(date +%Y%m%d_%H%M%S).wav"

Consent Documentation:

  • Log participant information and consent timestamps
  • Store consent records separate from audio files
  • Implement automated consent prompts in recording scripts

Quality Optimization Techniques

Achieving professional recording quality on Linux requires attention to both software configuration and environmental factors.

Environmental Optimization

Acoustic Treatment:

  • Choose quiet rooms with soft furnishings to reduce echo
  • Position away from computer fans and electrical interference
  • Use directional microphones to focus on conversation participants
  • Implement noise gates to eliminate background noise

Hardware Recommendations:

  • USB condenser microphones for desktop recording setups
  • Audio interfaces with multiple inputs for group conversations
  • Closed-back headphones for real-time monitoring
  • Pop filters and boom arms for consistent microphone positioning

Software Optimization

System Performance Tuning:

# Increase audio buffer sizes for stability
echo "options snd-hda-intel model=generic" | sudo tee -a /etc/modprobe.d/alsa-base.conf

# Optimize kernel for audio performance
echo "@audio - rtprio 95" | sudo tee -a /etc/security/limits.conf
echo "@audio - memlock unlimited" | sudo tee -a /etc/security/limits.conf

Real-Time Audio Processing:

  • Use real-time kernel for professional audio work
  • Configure CPU governor for consistent performance
  • Disable power management for audio devices during recording

Automated Quality Enhancement

Noise Reduction with SoX:

# Install SoX audio processing tools
sudo apt install sox libsox-fmt-all

# Apply noise reduction to recordings
sox input.wav output.wav noisered noise_profile.prof 0.21

# Normalize audio levels
sox input.wav output.wav gain -n

Batch Processing Scripts:

#!/bin/bash
# Automated audio enhancement for transcription
for file in *.wav; do
    sox "$file" "enhanced_$file" gain -n compand 0.3,1 6:-70,-60,-20 -5 -90 0.2
done

Preparing Recordings for Transcription

Linux provides excellent tools for preparing conversation recordings for AI transcription services like BrassTranscripts.

File Format Conversion

FFmpeg Format Optimization:

# Convert to transcription-optimized format
ffmpeg -i recording.flac -ar 16000 -ac 1 -c:a pcm_s16le optimized_for_transcription.wav

# Batch convert multiple files
for file in *.flac; do
    ffmpeg -i "$file" -ar 44100 -c:a libmp3lame -b:a 192k "${file%.flac}.mp3"
done

Audio Enhancement Pipeline:

#!/bin/bash
# Complete audio processing pipeline
input_file="$1"
output_file="${input_file%.*}_processed.wav"

# Noise reduction, normalization, and format optimization
sox "$input_file" temp1.wav noisered noise_profile.prof 0.21
sox temp1.wav temp2.wav gain -n
ffmpeg -i temp2.wav -ar 44100 -ac 1 -c:a pcm_s16le "$output_file"
rm temp1.wav temp2.wav

echo "Processed: $output_file ready for transcription"

Metadata and Organization

File Naming and Documentation:

#!/bin/bash
# Standardized file naming for conversations
date_stamp=$(date +%Y-%m-%d)
time_stamp=$(date +%H%M%S)
participants="$1"
topic="$2"

filename="${date_stamp}_${time_stamp}_${participants}_${topic}.wav"
echo "Recording: $filename"
arecord -f cd -t wav "$filename"

Metadata Embedding:

# Add metadata to audio files using FFmpeg
ffmpeg -i input.wav -metadata title="Team Meeting" -metadata artist="Company Name" -metadata date="2025-01-23" -c copy output.wav

Common Recording Scenarios and Solutions

Command-Line Meeting Recording

Automated Meeting Recording Script:

#!/bin/bash
# meeting_recorder.sh - Automated meeting recording

meeting_name="$1"
duration="$2"  # in seconds

if [[ -z "$meeting_name" || -z "$duration" ]]; then
    echo "Usage: $0 <meeting_name> <duration_seconds>"
    exit 1
fi

timestamp=$(date +%Y%m%d_%H%M%S)
filename="${timestamp}_${meeting_name}.wav"

echo "Recording meeting: $meeting_name"
echo "Duration: $duration seconds"
echo "File: $filename"

# Record with high quality settings
arecord -f S16_LE -r 44100 -c 2 -d "$duration" "$filename"

echo "Recording complete: $filename"
echo "File size: $(du -h "$filename" | cut -f1)"

VoIP Call Recording

Discord/Voice Chat Recording:

#!/bin/bash
# Record Discord or other VoIP applications

# Start recording system audio
ffmpeg -f pulse -i @DEFAULT_MONITOR@ -c:a flac "voip_call_$(date +%Y%m%d_%H%M%S).flac" &
record_pid=$!

echo "Recording VoIP call... Press Enter to stop."
read
kill $record_pid
echo "Recording stopped."

Interview Recording Setup

Professional Interview Recording:

#!/bin/bash
# interview_setup.sh - Multi-track interview recording

interviewer_input="$1"  # e.g., hw:0,0
interviewee_input="$2"  # e.g., hw:1,0
interview_topic="$3"

timestamp=$(date +%Y%m%d_%H%M%S)

# Record both tracks simultaneously
arecord -D "$interviewer_input" -f cd -t wav "${timestamp}_interviewer_${interview_topic}.wav" &
interviewer_pid=$!

arecord -D "$interviewee_input" -f cd -t wav "${timestamp}_interviewee_${interview_topic}.wav" &
interviewee_pid=$!

echo "Recording interview: $interview_topic"
echo "Press Enter to stop recording..."
read

kill $interviewer_pid $interviewee_pid
echo "Interview recording complete."

Troubleshooting Common Issues

Audio Device Recognition

Device Detection Problems:

# Check hardware detection
lsusb | grep -i audio
lspci | grep -i audio

# Reload audio drivers
sudo modprobe -r snd_hda_intel
sudo modprobe snd_hda_intel

# Check for device conflicts
cat /proc/asound/pcm

Permission and Access Issues

Audio Device Permissions:

# Add user to audio group
sudo usermod -a -G audio $USER

# Check device permissions
ls -l /dev/snd/

# Fix common permission issues
sudo chmod 666 /dev/snd/*

Recording Quality Problems

Audio Quality Diagnostics:

# Test recording levels
arecord -f cd -t wav -V stereo test.wav

# Analyze recorded audio
sox test.wav -n stat

# Check for audio dropouts
ffmpeg -i recording.wav -af "silencedetect=noise=-50dB:duration=0.5" -f null -

Advanced Linux Recording Techniques

Network Audio Recording

Remote Recording Setup:

# Stream audio over network using PulseAudio
pactl load-module module-tunnel-sink server=remote_host:4713

# Record from remote source
parec --server=remote_host:4713 --device=remote_source remote_recording.wav

Automated Recording Scripts

Cron-Based Scheduled Recording:

# Add to crontab for scheduled recording
# 0 14 * * 1-5 /home/user/scripts/daily_meeting_record.sh

#!/bin/bash
# daily_meeting_record.sh
cd /home/user/recordings
arecord -f cd -t wav -d 3600 "daily_meeting_$(date +%Y%m%d).wav"

Professional Audio Processing

Real-Time Audio Effects:

# Use JACK for real-time processing
jack_load -i "-f /path/to/effect_config" effect_processor

# Connect to recording application
jack_connect effect_processor:output_1 audacity:input_1

Conclusion and Next Steps

Linux provides unparalleled flexibility and power for conversation recording, from simple command-line tools to professional audio production capabilities. The evolution to PipeWire has simplified audio management while maintaining the professional features that make Linux attractive for audio work.

Whether you choose command-line utilities for automated recording workflows, GUI applications like Audacity for professional editing capabilities, or develop custom scripts for specialized recording scenarios, Linux offers solutions that scale from basic conversation capture to complex multi-participant recording setups.

The key to successful conversation recording on Linux lies in understanding your audio system architecture, properly configuring recording devices, and selecting appropriate tools for your specific use case while maintaining legal compliance and optimal recording quality.

Transform Your Linux Recordings into Professional Transcripts

Once you've captured your conversation using Linux's powerful recording tools, the next step is converting that audio into accurate, searchable text. BrassTranscripts provides professional AI transcription services optimized for Linux-recorded audio with:

  • 99+ Language Support with automatic detection
  • Advanced Speaker Identification for multi-participant conversations
  • Multiple Output Formats (TXT, SRT, VTT, JSON)
  • 95-98% Accuracy on clear audio from Linux recording setups
  • Professional Processing with secure handling and automatic cleanup

Ready to Transcribe Your Linux Recordings?

Upload your audio file to BrassTranscripts and experience accurate AI transcription with:

  • Flat-rate pricing starting at $2.25 for recordings up to 15 minutes
  • No subscription required - pay only for what you transcribe
  • Secure processing with automatic file deletion after 48 hours
  • Professional formatting with speaker labels and timestamps
  • Format flexibility supporting all common Linux audio formats

Whether you're documenting technical discussions, research interviews, or business meetings recorded with your Linux setup, accurate transcription transforms your recordings into searchable, shareable, and actionable information.

Frequently Asked Questions

Q: How do I know if I'm using PipeWire or PulseAudio?

A: Check your audio system with these commands:

# Check if PipeWire is running
systemctl --user status pipewire

# Check PulseAudio status
pulseaudio --check

# See active audio server
ps aux | grep -E "(pipewire|pulseaudio)"

Most modern distributions (Ubuntu 22.10+, Fedora 34+) use PipeWire by default.

Q: Why can't Audacity record system audio on my Linux system?

A: This is usually a configuration issue. Try these solutions:

  1. Set Audio Host to ALSA in Audacity's device toolbar
  2. Select a "Monitor" device for recording (shows system output)
  3. For PipeWire: Select "pulse" as recording device
  4. Check permissions: Ensure your user is in the audio group
  5. Install PulseAudio tools: sudo apt install pavucontrol for GUI control

Q: How do I record Discord or Zoom calls on Linux?

A: Several approaches work:

  • OBS Studio: Add "Audio Output Capture" source for system audio
  • Audacity: Use monitor sources to capture application audio
  • FFmpeg command: ffmpeg -f pulse -i @DEFAULT_MONITOR@ call_recording.wav
  • pavucontrol: Use GUI to route application audio to recording sources
  • Legal note: Always inform participants about recording

Q: What's the command to record audio with good quality?

A: Use these optimized commands:

# High quality with arecord
arecord -f S24_LE -r 48000 -c 2 -t wav professional.wav

# System audio with FFmpeg
ffmpeg -f pulse -i @DEFAULT_MONITOR@ -c:a flac high_quality.flac

# Long recording with compression
ffmpeg -f alsa -i default -c:a libmp3lame -b:a 192k conversation.mp3

Q: How do I fix "permission denied" audio recording errors?

A: Address permission issues step by step:

# Add user to audio group
sudo usermod -a -G audio $USER

# Fix device permissions
sudo chmod 666 /dev/snd/*

# Check group membership (logout/login after changes)
groups $USER

# For modern systems, also check:
sudo usermod -a -G pipewire $USER

Q: Can I record multiple microphones simultaneously?

A: Yes, Linux excels at multi-input recording:

  • JACK: Professional multi-track recording with QjackCtl
  • Audacity: Configure multiple USB microphones as separate tracks
  • FFmpeg: Combine multiple input sources
  • Hardware interfaces: Use audio interfaces with multiple XLR inputs
  • PipeWire: Simplified routing for complex setups

Q: Which Linux distribution is best for audio recording?

A: Several distributions excel for audio work:

  • Ubuntu Studio: Pre-configured for audio production with low-latency kernel
  • Fedora: Modern PipeWire implementation, great hardware support
  • Arch Linux: Cutting-edge audio stack, requires more configuration
  • KXStudio: Ubuntu-based with extensive audio software packages
  • Any modern distro: PipeWire makes audio recording easier across distributions

Q: How do I reduce latency for real-time recording monitoring?

A: Optimize your system for low-latency audio:

# Install real-time kernel (Ubuntu)
sudo apt install linux-lowlatency

# Configure JACK for low latency
jackd -d alsa -r 48000 -p 64

# Add real-time privileges
sudo usermod -a -G realtime $USER

# Check current latency
cat /proc/sys/kernel/sched_rt_runtime_us

Q: What's the best way to record VoIP calls automatically?

A: Set up automated VoIP recording:

#!/bin/bash
# Auto-record script for regular calls
while true; do
    # Check if VoIP app is running
    if pgrep discord || pgrep zoom; then
        timestamp=$(date +%Y%m%d_%H%M%S)
        ffmpeg -f pulse -i @DEFAULT_MONITOR@ "call_$timestamp.wav" &
        recording_pid=$!

        # Stop recording when app closes
        while pgrep discord || pgrep zoom; do sleep 10; done
        kill $recording_pid
    fi
    sleep 30
done

Q: How do I convert recordings for transcription services?

A: Optimize audio files for AI transcription:

# Convert to transcription-friendly format
ffmpeg -i input.flac -ar 16000 -ac 1 -c:a pcm_s16le output.wav

# Batch convert multiple files
for file in *.flac; do
    ffmpeg -i "$file" -ar 44100 -c:a libmp3lame -b:a 192k "${file%.flac}.mp3"
done

# Apply noise reduction with SoX
sox input.wav output.wav noisered noise_profile.prof 0.21 gain -n

Q: Why does my recording have dropouts or glitches?

A: Audio dropouts usually indicate system performance issues:

  • Increase buffer sizes: Configure larger audio buffers in applications
  • Close unnecessary programs: Free up CPU and memory resources
  • Check disk speed: Ensure fast storage for large audio files
  • Update drivers: Install latest audio drivers for your hardware
  • CPU governor: Set to "performance" mode during recording

Q: Can I record audio over SSH or remotely?

A: Yes, Linux supports network audio recording:

# Stream audio over SSH with PulseAudio
ssh -X user@remote_host pavucontrol

# Record from remote source
parec --server=remote_host:4713 --device=remote_source remote.wav

# Network streaming with FFmpeg
ffmpeg -f pulse -i remote_audio_stream output.wav

Q: How much CPU does audio recording use?

A: CPU usage varies by configuration:

  • Basic recording: 1-5% CPU with modern systems
  • Multi-track: 10-20% depending on track count
  • Real-time effects: 20-50% with noise reduction/compression
  • Optimization: Use efficient codecs (FLAC better than WAV for CPU)
  • Hardware: Audio interfaces reduce CPU load compared to USB mics

Q: What's the difference between ALSA, PulseAudio, and PipeWire?

A: Understanding Linux audio architecture:

  • ALSA: Low-level kernel interface, direct hardware access
  • PulseAudio: Sound server providing mixing and routing (legacy)
  • PipeWire: Modern replacement handling audio/video with low latency
  • For recording: PipeWire is recommended for new setups, PulseAudio still works
  • Compatibility: Most applications work with all three systems

Complete Recording Guide Series:

Ready to try BrassTranscripts?

Experience the accuracy and speed of our AI transcription service.