🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

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.

Versionv1.0.0
Downloads1,183
Installs6
Stars⭐ 1
TERMINAL
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.mp3

Get duration only

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 audio.mp3

Get bitrate

ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 audio.mp3

Get sample rate and channels

ffprobe -v error -select_streams a:0 -show_entries stream=sample_rate,channels -of default=noprint_wrappers=1 audio.mp3

Human-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.mp3

Convert to MP3 (specific bitrate)

ffmpeg -i input.wav -codec:a libmp3lame -b:a 192k output.mp3

Convert to WAV (uncompressed)

ffmpeg -i input.mp3 output.wav

Convert to FLAC (lossless)

ffmpeg -i input.wav output.flac

Convert to M4A/AAC

ffmpeg -i input.wav -codec:a aac -b:a 256k output.m4a

Convert to OGG Vorbis

ffmpeg -i input.wav -codec:a libvorbis -qscale:a 5 output.ogg

Convert 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.mp3

Trim from start to duration

ffmpeg -i input.mp3 -t 60 -c copy output.mp3 # First 60 seconds

Trim 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.mp3

Reduce volume (half)

ffmpeg -i input.mp3 -af "volume=0.5" output.mp3

Normalize audio

ffmpeg -i input.mp3 -af "loudnorm" output.mp3

Speed up (1.5x)

ffmpeg -i input.mp3 -af "atempo=1.5" output.mp3

Slow 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.mp3

Merge 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.mp3

Mix 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.aac

Extract and convert

ffmpeg -i video.mp4 -vn -acodec libmp3lame -b:a 192k audio.mp3

Playback (macOS)

# Play audio file
afplay audio.mp3

Play with volume (0.0 to 1.0)

afplay -v 0.5 audio.mp3

Play 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   [quality]

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
  • Re-encode (-af) for precise cuts but takes longer
  • Opus is best for speech at low bitrates
  • Use loudnorm 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
  • Re-encode (-af) for precise cuts but takes longer
  • Opus is best for speech at low bitrates
  • Use loudnorm filter for consistent volume across files