aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/extra/qwentts.cpp/examples/server-test.sh
blob: 7242afe0f982a7300fd9e36a8734607e5e1f3e17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/bin/bash
# Prueba de punta a punta del tts-server (API OpenAI-compatible).
set -u
cd "$(dirname "$0")"
OUT=out; mkdir -p "$OUT"
PORT=8080; H=127.0.0.1; B="http://$H:$PORT"

echo "== arrancando tts-server (base 1.7B) =="
../build/tts-server \
    --model ../models/qwen-talker-1.7b-base-Q8_0.gguf \
    --codec ../models/qwen-tokenizer-12hz-Q8_0.gguf \
    --alias qwen3-tts-base --host $H --port $PORT --lang auto \
    >"$OUT/server.log" 2>&1 &
SRV=$!
trap 'kill $SRV 2>/dev/null' EXIT

echo -n "esperando readiness"
for i in $(seq 1 60); do
    curl -sf "$B/v1/models" >/dev/null 2>&1 && { echo " listo"; break; }
    kill -0 $SRV 2>/dev/null || { echo " el server murio"; tail -20 "$OUT/server.log"; exit 1; }
    printf '.'; sleep 1
done

echo "== 1) GET /v1/models =="
curl -s "$B/v1/models"; echo

echo "== 2) voz por defecto -> wav =="
curl -s -X POST "$B/v1/audio/speech" -H "Content-Type: application/json" \
    -d '{"input":"This is the default server voice.","response_format":"wav","seed":42}' \
    -o "$OUT/srv_default.wav"
echo "  $(du -h "$OUT/srv_default.wav" | cut -f1)  $OUT/srv_default.wav"

echo "== 3) registrar voz clonada 'freeman' (spk+rvq b64) =="
curl -s -X POST "$B/v1/audio/voices" -H "Content-Type: application/json" \
    -d "{\"name\":\"freeman\",\"ref_text\":\"$(cat freeman.txt)\",
         \"spk_b64\":\"$(base64 -w0 freeman.spk)\",\"rvq_b64\":\"$(base64 -w0 freeman.rvq)\"}"
echo

echo "== 4) sintesis con la voz clonada -> wav =="
curl -s -X POST "$B/v1/audio/speech" -H "Content-Type: application/json" \
    -d '{"input":"Now I am speaking with the cloned voice.","voice":"freeman","response_format":"wav","seed":42,"temperature":0.8}' \
    -o "$OUT/srv_freeman.wav"
echo "  $(du -h "$OUT/srv_freeman.wav" | cut -f1)  $OUT/srv_freeman.wav"

echo "== 5) streaming PCM (s16le) -> archivo raw =="
curl -s -X POST "$B/v1/audio/speech" -H "Content-Type: application/json" \
    -d '{"input":"Streaming pcm chunks.","response_format":"pcm","seed":42}' \
    -o "$OUT/srv_stream.pcm"
echo "  $(du -h "$OUT/srv_stream.pcm" | cut -f1)  $OUT/srv_stream.pcm (s16le mono 24k)"

echo "== ok, parando server =="