#!/bin/sh cd "$(dirname "$0")" # Lade .env (alle Variablen automatisch exportieren) if test -f .env; then set -a . ./.env set +a fi # Ausgabedatei (optionaler Parameter, Default: output.wav) OUT="${1:-output.wav}" # Text von STDIN in temporäre Datei lesen TMP_TEXT=$(mktemp) trap 'rm -f "$TMP_TEXT"' EXIT cat > "$TMP_TEXT" # Referenz-Audio als base64 kodieren (Linux: -w 0) REF_AUDIO_B64=$(base64 -w 0 elena-referenz.wav) # JSON-Body via Pipe an curl übergeben, damit der Text # nie von der Shell expandiert wird (keine $-Probleme). { printf '{\n' printf ' "text": "' # JSON-Escaping für Text: \, ", Tab, Zeilenumbruch awk '{ gsub(/\\/, "\\\\"); gsub(/"/, "\\\""); gsub(/\t/, "\\t"); if (NR > 1) printf "\\n"; printf "%s", $0 }' "$TMP_TEXT" printf '",\n' printf ' "language": "German",\n' printf ' "ref_text": "Das Café Laube roch nach einer Mischung aus frisch gerösteten Bohnen, süßlichen Lilien und dem metallischen Unterton von Regen",\n' printf ' "trim_sample": true,\n' printf ' "auto_denoise": false,\n' printf ' "high_fidelity": false,\n' printf ' "ref_audio_b64": "' printf '%s' "$REF_AUDIO_B64" printf '"\n' printf '}\n' } | curl -X POST "https://vonkaiser-audiodojo.chutes.ai/tts/qwen3clone" \ -H "Authorization: Bearer $CHUTES_API_KEY" \ -H "Content-Type: application/json" \ --data-binary @- \ --output "$OUT"