#!/usr/bin/env bash set -euo pipefail if [ $# -lt 1 ]; then echo "Использование: transcribe-audio <аудиофайл> [lang:auto|ru|en] [mode:txt|srt|json|all]" exit 1 fi AUDIO="$1" LANG="${2:-auto}" MODE="${3:-all}" if [ ! -f "$AUDIO" ]; then echo "Файл не найден: $AUDIO" exit 1 fi WHISPER_BIN="${WHISPER_BIN:-$HOME/.local/bin/whisper}" MODEL="${WHISPER_MODEL:-$HOME/.cache/whisper-cpp/ggml-small.bin}" OUT_BASE="${AUDIO%.*}" FLAGS=( -m "$MODEL" -f "$AUDIO" -l "$LANG" -pp ) case "$MODE" in txt) "$WHISPER_BIN" "${FLAGS[@]}" -otxt -of "$OUT_BASE" ;; srt) "$WHISPER_BIN" "${FLAGS[@]}" -osrt -of "$OUT_BASE" ;; json) "$WHISPER_BIN" "${FLAGS[@]}" -oj -of "$OUT_BASE" ;; all) "$WHISPER_BIN" "${FLAGS[@]}" -otxt -osrt -oj -of "$OUT_BASE" ;; *) echo "Неизвестный режим: $MODE" exit 1 ;; esac echo "Готово. Результаты рядом с файлом: ${OUT_BASE}.txt/.srt/.json"