speak.sh vereinfacht
This commit is contained in:
32
speak.sh
32
speak.sh
@@ -2,49 +2,23 @@
|
||||
|
||||
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)
|
||||
ESCAPED_TEXT=$(awk '{gsub(/\\/, "\\\\"); gsub(/"/, "\\\""); gsub(/\t/, "\\t"); if (NR>1) printf "\\n"; printf "%s", $0}' "$TMP_TEXT")
|
||||
|
||||
# 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" \
|
||||
printf '{"text":"%s","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","trim_sample":true,"auto_denoise":false,"high_fidelity":false,"ref_audio_b64":"%s"}' "$ESCAPED_TEXT" "$REF_AUDIO_B64" | \
|
||||
curl -X POST "https://vonkaiser-audiodojo.chutes.ai/tts/qwen3clone" \
|
||||
-H "Authorization: Bearer $CHUTES_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
--data-binary @- \
|
||||
|
||||
Reference in New Issue
Block a user