audio-converter

dkyazzentwatwa's avatarfrom dkyazzentwatwa

Convert audio files between formats (MP3, WAV, FLAC, OGG, M4A) with bitrate and sample rate control. Batch processing supported.

⭐1stars🔀0forks📁View on GitHub🕐Updated Dec 17, 2025

When & Why to Use This Skill

The Audio Converter skill is a powerful utility for Claude agents designed to handle audio file transformations. It supports seamless conversion between major formats including MP3, WAV, FLAC, OGG, and M4A, offering granular control over bitrate, sample rate, and channel configurations. With built-in support for batch processing and volume normalization, it streamlines audio asset management for developers, podcasters, and creative professionals.

Use Cases

  • Podcast Production: Batch convert raw WAV recordings into 128kbps mono MP3 files optimized for distribution.
  • Web Optimization: Convert high-fidelity FLAC or AIFF files into compressed OGG or M4A formats to reduce web page loading times.
  • Audio Normalization: Automatically adjust and normalize volume levels across a library of audio clips to ensure consistent playback quality.
  • Storage Management: Downsample high-bitrate audio files to lower bitrates (e.g., 320kbps to 192kbps) to save disk space while maintaining acceptable quality.
  • Format Compatibility: Quickly transform Apple-specific AIFF files into universally compatible MP3 or WAV formats for cross-platform use.
nameaudio-converter
descriptionConvert audio files between formats (MP3, WAV, FLAC, OGG, M4A) with bitrate and sample rate control. Batch processing supported.

Audio Converter

Convert audio files between popular formats with control over quality settings. Supports batch processing and maintains metadata where possible.

Quick Start

from scripts.audio_converter import AudioConverter

# Simple conversion
converter = AudioConverter("input.wav")
converter.convert("output.mp3")

# With quality settings
converter = AudioConverter("input.flac")
converter.bitrate(320).sample_rate(44100).convert("output.mp3")

# Batch convert directory
AudioConverter.batch_convert("./input_folder", "./output_folder", format="mp3", bitrate=192)

Features

  • Format Support: MP3, WAV, FLAC, OGG, M4A/AAC, AIFF
  • Quality Control: Bitrate, sample rate, channels
  • Metadata Preservation: Copy tags when possible
  • Batch Processing: Convert entire directories
  • Normalization: Optional volume normalization

API Reference

Initialization

# From file
converter = AudioConverter("audio.wav")

Settings

converter.bitrate(192)        # kbps (for lossy formats)
converter.sample_rate(44100)  # Hz
converter.channels(2)         # 1=mono, 2=stereo
converter.normalize(True)     # Normalize volume

Conversion

# Convert to format (inferred from extension)
converter.convert("output.mp3")

# Explicit format
converter.convert("output", format="mp3")

Batch Processing

# Convert all files in directory
AudioConverter.batch_convert(
    input_dir="./wavs",
    output_dir="./mp3s",
    format="mp3",
    bitrate=320
)

CLI Usage

# Simple conversion
python audio_converter.py --input song.wav --output song.mp3

# With quality settings
python audio_converter.py --input song.flac --output song.mp3 --bitrate 320 --sample-rate 44100

# Batch convert
python audio_converter.py --input-dir ./wavs --output-dir ./mp3s --format mp3 --bitrate 192

# Normalize during conversion
python audio_converter.py --input song.wav --output song.mp3 --normalize

CLI Arguments

Argument Description Default
--input Input audio file Required
--output Output file path Required
--input-dir Input directory for batch -
--output-dir Output directory for batch -
--format Output format From extension
--bitrate Bitrate in kbps 192
--sample-rate Sample rate in Hz Original
--channels Number of channels Original
--normalize Normalize volume False

Supported Formats

Format Extension Type Notes
MP3 .mp3 Lossy Most compatible
WAV .wav Lossless Large files
FLAC .flac Lossless Compressed lossless
OGG .ogg Lossy Open format
M4A .m4a Lossy AAC codec
AIFF .aiff Lossless Apple format

Examples

Convert WAV to MP3

converter = AudioConverter("recording.wav")
converter.bitrate(320).convert("recording.mp3")

Convert FLAC to Multiple Formats

source = AudioConverter("album.flac")

# High quality MP3
source.bitrate(320).convert("album_hq.mp3")

# Standard MP3
source.bitrate(192).convert("album_std.mp3")

# OGG for streaming
source.bitrate(128).convert("album.ogg")

Batch Convert for Podcast

# Convert all WAV recordings to MP3 with podcast settings
AudioConverter.batch_convert(
    input_dir="./raw_episodes",
    output_dir="./episodes",
    format="mp3",
    bitrate=128,
    sample_rate=44100,
    channels=1  # Mono for podcasts
)

Dependencies

pydub>=0.25.0
soundfile>=0.12.0

Note: Requires FFmpeg installed on system for MP3/M4A support.

Limitations

  • Requires FFmpeg for MP3 and M4A formats
  • Metadata transfer is best-effort
  • Some format combinations may not preserve all tags