| 1234567891011121314151617181920212223242526 |
- #!/bin/bash
- # Test Aliyun TTS 3 ways: 默认 / Instruct 正常 / Instruct 慢速
- set -e
- TEXT='窗台上落着几样旧物。一只白瓷杯,杯沿有一道细细的釉裂,里面还留着半盏凉透的茶。'
- API_KEY=$(grep '^DASHSCOPE_API_KEY=' /data/ai/audio/server/.env | cut -d= -f2)
- echo "=== A: Qwen-TTS 默认 1.0x (基准) ==="
- A_RESP=$(curl -sS -m 30 -X POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
- -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json' \
- -d "{\"model\":\"qwen3-tts-flash\",\"input\":{\"text\":\"${TEXT}\",\"voice\":\"Cherry\"},\"parameters\":{\"format\":\"mp3\",\"sample_rate\":24000}}")
- A_URL=$(echo "$A_RESP" | python3 -c 'import json,sys; d=json.load(sys.stdin); print(d.get("output",{}).get("audio",{}).get("url","") or "")')
- echo "URL: $A_URL"
- [ -n "$A_URL" ] && curl -sS -m 30 -o /tmp/aliyun-A.mp3 "$A_URL" && ls -la /tmp/aliyun-A.mp3
- ffmpeg -i /tmp/aliyun-A.mp3 -f null - 2>&1 | grep Duration | head -1
- echo
- echo "=== B: Qwen-TTS Instruct 语速较慢 ==="
- B_RESP=$(curl -sS -m 30 -X POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation' \
- -H "Authorization: Bearer ${API_KEY}" -H 'Content-Type: application/json' \
- -d "{\"model\":\"qwen3-tts-instruct-flash\",\"input\":{\"text\":\"${TEXT}\",\"voice\":\"Cherry\",\"instructions\":\"语速较慢\"},\"parameters\":{\"format\":\"mp3\",\"sample_rate\":24000}}")
- B_URL=$(echo "$B_RESP" | python3 -c 'import json,sys; d=json.load(sys.stdin); print(d.get("output",{}).get("audio",{}).get("url","") or "")')
- echo "URL: $B_URL"
- echo "Raw response (truncated):"
- echo "$B_RESP" | head -c 500
- echo
|