Get the FREE Ultimate OpenClaw Setup Guide →

audio-converter

Scanned
npx machina-cli add skill dkyazzentwatwa/chatgpt-skills/audio-converter --openclaw
Files (1)
SKILL.md
3.9 KB

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

ArgumentDescriptionDefault
--inputInput audio fileRequired
--outputOutput file pathRequired
--input-dirInput directory for batch-
--output-dirOutput directory for batch-
--formatOutput formatFrom extension
--bitrateBitrate in kbps192
--sample-rateSample rate in HzOriginal
--channelsNumber of channelsOriginal
--normalizeNormalize volumeFalse

Supported Formats

FormatExtensionTypeNotes
MP3.mp3LossyMost compatible
WAV.wavLosslessLarge files
FLAC.flacLosslessCompressed lossless
OGG.oggLossyOpen format
M4A.m4aLossyAAC codec
AIFF.aiffLosslessApple 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

Source

git clone https://github.com/dkyazzentwatwa/chatgpt-skills/blob/main/audio-converter/SKILL.mdView on GitHub

Overview

Audio Converter enables transcoding between MP3, WAV, FLAC, OGG, M4A/AAC and more, with optional bitrate, sample rate, channels, and normalization controls. It supports batch processing and strives to preserve metadata where possible, making it suitable for both quick edits and bulk conversions.

How This Skill Works

The tool uses the AudioConverter Python class to configure quality settings via bitrate(), sample_rate(), channels(), and normalize(), then invokes convert() to produce the target file. For bulk projects, batch_convert() processes entire directories. Note that FFmpeg is required for MP3 and M4A formats.

When to Use It

  • Converting a single file to a different format with explicit bitrate and sample rate settings
  • Batch-converting an input directory to a single output format for podcasts or distribution
  • Converting FLAC or WAV sources to MP3 with controlled bitrate and channel settings
  • Creating alternate formats (e.g., MP3, OGG) from a single source for streaming
  • Preserving metadata tags where possible during format conversions

Quick Start

  1. Step 1: converter = AudioConverter("input.wav"); converter.convert("output.mp3")
  2. Step 2: converter = AudioConverter("input.flac"); converter.bitrate(320).sample_rate(44100).convert("output.mp3")
  3. Step 3: AudioConverter.batch_convert("./input_folder", "./output_folder", format="mp3", bitrate=192)

Best Practices

  • Ensure FFmpeg is installed, as MP3 and M4A support relies on it
  • Start with a small test file to choose appropriate bitrate and sample_rate
  • Use normalize() when consistent loudness across files is required
  • Be aware that metadata transfer is best-effort and may not always be perfect
  • Back up originals before performing batch conversions

Example Use Cases

  • converter = AudioConverter("recording.wav"); converter.bitrate(320).convert("recording.mp3")
  • source = AudioConverter("album.flac"); source.bitrate(320).convert("album_hq.mp3"); source.bitrate(192).convert("album_std.mp3"); source.bitrate(128).convert("album.ogg")
  • AudioConverter.batch_convert(input_dir="./wavs", output_dir="./mp3s", format="mp3", bitrate=320)
  • AudioConverter.batch_convert(input_dir="./raw_episodes", output_dir="./episodes", format="mp3", bitrate=128, sample_rate=44100, channels=1)
  • converter = AudioConverter("recording.wav"); converter.bitrate(192).sample_rate(44100).convert("recording.mp3")

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers