speak.sh gefixt

This commit is contained in:
2026-07-20 23:32:21 +02:00
parent 588335dbfe
commit 932c37b03e

View File

@@ -1,26 +1,51 @@
#!/bin/sh #!/bin/sh
KEY="cpk_fb48056a2f384b7e8d553c050ff347ad.5a86acf7400b53d090db223353db7dd1.0d6YfPPGZaBFXJoo2B1I7x397OTzau2E"
cd "$(dirname "$0")" cd "$(dirname "$0")"
FILE="$1" # Lade .env (alle Variablen automatisch exportieren)
if test ! -f "$FILE"; then if test -f .env; then
echo "Missing or wrong file: $FILE" set -a
exit 1 . ./.env
set +a
fi fi
# Ausgabedatei (optionaler Parameter, Default: output.wav)
OUT="${1:-output.wav}"
curl -X POST "https://vonkaiser-audiodojo.chutes.ai/tts/qwen3clone" \ # Text von STDIN in temporäre Datei lesen
-H "Authorization: Bearer $KEY" \ TMP_TEXT=$(mktemp)
-H "Content-Type: application/json" \ trap 'rm -f "$TMP_TEXT"' EXIT
-d '{
"text": "Dies ist ein Test. Zum testen und so Sachen.", cat > "$TMP_TEXT"
"language": "German",
"ref_text": "Das Café Laube roch nach einer Mischung aus frisch gerösteten Bohnen, süßlichen Lilien und dem metallischen Unterton von Regen", # Referenz-Audio als base64 kodieren (Linux: -w 0)
"trim_sample": true, REF_AUDIO_B64=$(base64 -w 0 elena-referenz.wav)
"auto_denoise": false,
"high_fidelity": false, # JSON-Body via Pipe an curl übergeben, damit der Text
"ref_audio_b64": "$(base64 -w 0 elena-referenz.wav)" # nie von der Shell expandiert wird (keine $-Probleme).
}' \ {
--output output.wav 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"