Skip to main content

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"