test_sse.py 1018 B

12345678910111213141516171819202122232425
  1. import requests, json
  2. r = requests.post(
  3. 'https://dashscope.aliyuncs.com/api/v1/services/audio/tts/SpeechSynthesizer',
  4. headers={'Authorization': 'Bearer sk-c25679401ba24c749f53be86b0c9a7a6', 'Content-Type': 'application/json', 'X-DashScope-SSE': 'enable'},
  5. json={'model': 'cosyvoice-v3-flash', 'input': {'text': '春天来了万物复苏阳光温暖', 'voice': 'longanyang', 'format': 'mp3', 'sample_rate': 24000}},
  6. stream=True
  7. )
  8. chunks = []
  9. for line in r.iter_lines(decode_unicode=True):
  10. if line and line.startswith('data:'):
  11. try:
  12. d = json.loads(line[5:].strip())
  13. data = d.get('output',{}).get('audio',{}).get('data','')
  14. if data:
  15. chunks.append(data)
  16. except: pass
  17. import base64
  18. audio = b''.join(base64.b64decode(c) for c in chunks)
  19. print(f'HTTP {r.status_code}, chunks: {len(chunks)}, total: {len(audio)} bytes')
  20. with open('test-results/sse_test.mp3', 'wb') as f:
  21. f.write(audio)
  22. print('saved to test-results/sse_test.mp3')