Script ./bin/meeting-start
./bin/meeting-start
Usage:
-
German:
meeting-start --de -
English:
meeting-start --en -
Auto:
meeting-start --auto
#!/usr/bin/env bash
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
source "$HERE/../lib/paths.sh"
source "$HERE/../lib/audio.sh"
source "$HERE/../lib/whisper.sh"
LANG_MODE="auto"
while [[ $# -gt 0 ]]; do
case "$1" in
--de) LANG_MODE="de"; shift ;;
--en) LANG_MODE="en"; shift ;;
--auto) LANG_MODE="auto"; shift ;;
*) echo "Usage: meeting-start [--de|--en|--auto]"; exit 2 ;;
esac
done
# Whisper language flag nur setzen, wenn nicht auto
LANG_OPT=()
if [[ "$LANG_MODE" != "auto" ]]; then
LANG_OPT=(--language "$LANG_MODE")
fi
echo "📁 Session: $SESSION"
echo "🔊 Audio source: $AUDIO_SOURCE"
echo "🗣️ Language: $LANG_MODE"
echo "----"
echo "Live transcript will appear below. Stop with: meeting-stop"
echo "----"
# Audioaufnahme (Systemaudio)
ffmpeg -hide_banner -loglevel error \
-f pulse -i "$AUDIO_SOURCE" \
-ac 1 -ar 16000 \
"$AUDIO" &
FFMPEG_PID=$!
# Transkription: liest die wachsende WAV-Datei
# Ausgabe geht sowohl live ins Terminal als auch ins Transkriptfile
"$WHISPER" -m "$MODEL" -f "$AUDIO" $COMMON_OPTS "${LANG_OPT[@]}" | \
tee -a "$TRANSCRIPT" &
WHISPER_PID=$!
# Meta + PIDs speichern
cat > "$META" <<EOF
SESSION=$SESSION
AUDIO=$AUDIO
TRANSCRIPT=$TRANSCRIPT
LANG_MODE=$LANG_MODE
AUDIO_SOURCE=$AUDIO_SOURCE
FFMPEG_PID=$FFMPEG_PID
WHISPER_PID=$WHISPER_PID
EOF
echo "$FFMPEG_PID" > "$SESSION/ffmpeg.pid"
echo "$WHISPER_PID" > "$SESSION/whisper.pid"
# Optional: Wenn du willst, dass das Script „dran bleibt“ und du live siehst:
# -> Wir blocken nicht hart, damit du in einem zweiten Terminal folgen kannst.
echo "✅ Started. Transcript: $TRANSCRIPT"
echo "➡️ Follow anytime with: meeting-follow"