tts.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import csv
  2. import datetime
  3. import os
  4. import requests
  5. from config import key_get
  6. free_map = {
  7. "诺艾尔": "原神-中文-诺艾尔_ZH",
  8. "芙宁娜": "原神-中文-芙宁娜_ZH",
  9. "神里绫华": "原神-中文-神里绫华_ZH",
  10. "迪卢克": "原神-中文-迪卢克_ZH",
  11. }
  12. def get_free_tts(name, text):
  13. """
  14. 从免费的试用api获取语音合成效果
  15. """
  16. url = "https://gsv2p.acgnai.top/infer_single"
  17. headers = {
  18. "Authorization": "Bearer " + key_get('tts'),
  19. "Content-Type": "application/json"
  20. }
  21. model = free_map.get(name)
  22. if model is None:
  23. return "该模型暂不支持"
  24. response = requests.post(url, headers=headers, json={
  25. "version": "v4",
  26. "model_name": model,
  27. "prompt_text_lang": "中文",
  28. "emotion": "默认",
  29. "text": text,
  30. "text_lang": "中文",
  31. "top_k": 10,
  32. "top_p": 1,
  33. "temperature": 1,
  34. "text_split_method": "按标点符号切",
  35. "batch_size": 1,
  36. "batch_threshold": 0.75,
  37. "split_bucket": True,
  38. "speed_facter": 1,
  39. "fragment_interval": 0.3,
  40. "media_type": "mp3",
  41. "parallel_infer": True,
  42. "repetition_penalty": 1.35,
  43. "seed": -1,
  44. "sample_steps": 16,
  45. "if_sr": False
  46. })
  47. data = response.json()
  48. if data.get("msg") == "合成成功":
  49. return data.get("audio_url")
  50. else:
  51. return "获取失败"
  52. if __name__ == "__main__":
  53. print(get_free_tts("诺艾尔111", "你好"))