Audio Handler
by @neckr0ik
Read, analyze, convert, trim, merge, adjust volume, and transcribe audio files in multiple formats including MP3, WAV, FLAC, AAC, OGG, and more.
clawhub install audio-handlerπ About This Skill
name: audio-handler description: Read, analyze, convert, and process audio files (MP3, WAV, FLAC, AAC, M4A, OGG, OPUS, WMA). Use when working with audio: extracting metadata, converting formats, trimming, merging, adjusting volume, or transcribing. Triggers on mentions of audio files, file paths with audio extensions, or requests to process/convert audio.
Audio Handler
Analyze, convert, and process audio files.
Supported Formats
| Format | Extensions | Read | Convert | Metadata | |--------|------------|------|---------|----------| | MP3 | .mp3 | β | β | β | | WAV | .wav | β | β | β | | FLAC | .flac | β | β | β | | AAC/M4A | .m4a, .aac | β | β | β | | OGG | .ogg | β | β | β | | Opus | .opus | β | β | β | | WMA | .wma | β | β | β | | AIFF | .aiff, .aif | β | β | β |
Quick Commands
Metadata (ffprobe)
# Get all metadata
ffprobe -v quiet -print_format json -show_format -show_streams audio.mp3Get duration only
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 audio.mp3Get bitrate
ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 audio.mp3Get sample rate and channels
ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate,channels -of default=noprint_wrappers=1 audio.mp3Human-readable info
ffprobe -hide_banner audio.mp3
Convert Formats (ffmpeg)
# Convert to MP3 (good quality)
ffmpeg -i input.wav -codec:a libmp3lame -qscale:a 2 output.mp3Convert to MP3 (specific bitrate)
ffmpeg -i input.wav -codec:a libmp3lame -b:a 192k output.mp3Convert to WAV (uncompressed)
ffmpeg -i input.mp3 output.wavConvert to FLAC (lossless)
ffmpeg -i input.wav output.flacConvert to M4A/AAC
ffmpeg -i input.wav -codec:a aac -b:a 256k output.m4aConvert to OGG Vorbis
ffmpeg -i input.wav -codec:a libvorbis -qscale:a 5 output.oggConvert to Opus (best for speech)
ffmpeg -i input.wav -codec:a libopus -b:a 64k output.opus
Trim & Clip
# Trim audio (from 30s to 90s)
ffmpeg -i input.mp3 -ss 30 -to 90 -c copy output.mp3Trim from start to duration
ffmpeg -i input.mp3 -t 60 -c copy output.mp3 # First 60 secondsTrim with re-encode (more accurate)
ffmpeg -i input.mp3 -ss 30 -to 90 output.mp3
Volume & Speed
# Adjust volume (2x louder)
ffmpeg -i input.mp3 -af "volume=2" output.mp3Reduce volume (half)
ffmpeg -i input.mp3 -af "volume=0.5" output.mp3Normalize audio
ffmpeg -i input.mp3 -af "loudnorm" output.mp3Speed up (1.5x)
ffmpeg -i input.mp3 -af "atempo=1.5" output.mp3Slow down (0.75x)
ffmpeg -i input.mp3 -af "atempo=0.75" output.mp3
Merge & Concatenate
# Concatenate audio files
ffmpeg -i "concat:part1.mp3|part2.mp3|part3.mp3" -acodec copy output.mp3Merge with file list
echo "file 'part1.mp3'" > list.txt
echo "file 'part2.mp3'" >> list.txt
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp3Mix two audio tracks
ffmpeg -i voice.mp3 -i music.mp3 -filter_complex amix=inputs=2:duration=longest output.mp3
Extract Audio from Video
# Extract audio track
ffmpeg -i video.mp4 -vn -acodec copy audio.aacExtract and convert
ffmpeg -i video.mp4 -vn -acodec libmp3lame -b:a 192k audio.mp3
Playback (macOS)
# Play audio file
afplay audio.mp3Play with volume (0.0 to 1.0)
afplay -v 0.5 audio.mp3Play in background
afplay audio.mp3 &Stop playback
killall afplay
Text-to-Speech (macOS)
# Speak text
say "Hello, this is a test"Save to file
say -o output.aiff "This will be saved as audio"List voices
say -v ?Use specific voice
say -v "Samantha" "Hello, I am Samantha"Convert to MP3
say -o temp.aiff "Text to convert" && ffmpeg -i temp.aiff output.mp3 && rm temp.aiff
Scripts
audio_info.sh
Get comprehensive audio metadata.
~/Dropbox/jarvis/skills/audio-handler/scripts/audio_info.sh
convert_audio.sh
Convert between formats with quality options.
~/Dropbox/jarvis/skills/audio-handler/scripts/convert_audio.sh trim_audio.sh
Trim audio with start/end times.
~/Dropbox/jarvis/skills/audio-handler/scripts/trim_audio.sh normalize_audio.sh
Normalize volume level.
~/Dropbox/jarvis/skills/audio-handler/scripts/normalize_audio.sh Quality Guide
| Use Case | Format | Settings |
|----------|--------|----------|
| Music archive | FLAC | -codec:a flac |
| Music portable | MP3 | -codec:a libmp3lame -qscale:a 2 |
| Podcast/speech | Opus | -codec:a libopus -b:a 64k |
| Voice memo | M4A | -codec:a aac -b:a 128k |
| Uncompressed | WAV | -codec:a pcm_s16le |
Notes
ffmpeg handles almost all audio formats-c copy is fast but may be inaccurate for trimming-af) for precise cuts but takes longerloudnorm filter for consistent volume across filesπ Tips & Best Practices
ffmpeg handles almost all audio formats-c copy is fast but may be inaccurate for trimming-af) for precise cuts but takes longerloudnorm filter for consistent volume across files