diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-05-19 18:38:39 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-05-19 18:38:39 +0200 |
| commit | e8cf42f2f17151378574ee5b50f29904a1067bee (patch) | |
| tree | 86b4db80971ecf9818ad769bd8b7fa337d218731 /record-voice | |
| parent | c3bfa44d1b6da88c184fc3312944cf47d1dfd7f2 (diff) | |
| download | bin-e8cf42f2f17151378574ee5b50f29904a1067bee.tar.gz bin-e8cf42f2f17151378574ee5b50f29904a1067bee.zip | |
Diffstat (limited to 'record-voice')
| -rwxr-xr-x | record-voice | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/record-voice b/record-voice new file mode 100755 index 0000000..ce68cae --- /dev/null +++ b/record-voice @@ -0,0 +1,82 @@ +#!/usr/bin/env bash + +set -euo pipefail + +OUTPUT="voice" +BITRATE="128k" +FORMAT="mp3" + +usage() { + echo "Usage: $0 -o output_name [options]" + echo + echo "Options:" + echo " -o NAME Output filename (without extension)" + echo " -b BITRATE MP3 bitrate" + echo " -f FORMAT Output format: mp3 or wav" + echo " -h Show this help message" + echo + echo "Available MP3 bitrates:" + echo " 64k Low quality / smallest files" + echo " 96k Good for speech" + echo " 128k Very good speech quality (default)" + echo " 192k High quality" + echo " 320k Maximum MP3 quality" + echo + echo "Examples:" + echo " $0 -o meeting" + echo " $0 -o podcast -b 192k" + echo " $0 -o lecture -f wav" + echo + exit 0 +} + +while getopts "o:b:f:h" opt; do + case "$opt" in + o) OUTPUT="$OPTARG" ;; + b) BITRATE="$OPTARG" ;; + f) FORMAT="$OPTARG" ;; + h) usage ;; + *) usage ;; + esac +done + +FORMAT=$(echo "$FORMAT" | tr '[:upper:]' '[:lower:]') + +case "$FORMAT" in + mp3) + FILE="${OUTPUT}.mp3" + + echo "Recording MP3 to: $FILE" + echo "Bitrate: $BITRATE" + echo "Press Ctrl+C to stop." + echo + + ffmpeg \ + -f pulse \ + -i default \ + -ac 1 \ + -c:a libmp3lame \ + -b:a "$BITRATE" \ + "$FILE" + ;; + + wav) + FILE="${OUTPUT}.wav" + + echo "Recording WAV to: $FILE" + echo "Press Ctrl+C to stop." + echo + + ffmpeg \ + -f pulse \ + -i default \ + -ac 1 \ + "$FILE" + ;; + + *) + echo "Error: unsupported format '$FORMAT'" + echo "Supported formats: mp3, wav" + exit 1 + ;; +esac |
