🧪 Skills
Audio Handler
Read, analyze, convert, trim, merge, adjust volume, and transcribe audio files in multiple formats including MP3, WAV, FLAC, AAC, OGG, and more.
v1.0.0
Description
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 <audio_file>
convert_audio.sh
Convert between formats with quality options.
~/Dropbox/jarvis/skills/audio-handler/scripts/convert_audio.sh <input> <output> [quality]
trim_audio.sh
Trim audio with start/end times.
~/Dropbox/jarvis/skills/audio-handler/scripts/trim_audio.sh <input> <output> <start> <end>
normalize_audio.sh
Normalize volume level.
~/Dropbox/jarvis/skills/audio-handler/scripts/normalize_audio.sh <input> <output>
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
ffmpeghandles almost all audio formats-c copyis 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
loudnormfilter for consistent volume across files
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!