Back to skills
extension
Category: Content & MediaNo API key required

audio-converter

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

personAuthor: jakexiaohubgithub

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