generate_voices.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. """使用本机 SAPI 语音合成生成 assets/voices/*.wav"""
  2. import os
  3. import sys
  4. OUTPUT_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "assets", "voices")
  5. VOICES = {
  6. "hooking.wav": "挂包中",
  7. "ready.wav": "挂包成功",
  8. "releasing.wav": "放包中",
  9. "arrive_1.wav": "到达1号工位",
  10. "arrive_2.wav": "到达2号工位",
  11. "arrive_3.wav": "到达3号工位",
  12. "arrive_4.wav": "到达4号工位",
  13. "arrive_5.wav": "到达5号工位",
  14. }
  15. def main():
  16. os.makedirs(OUTPUT_DIR, exist_ok=True)
  17. import win32com.client
  18. speaker = win32com.client.Dispatch("SAPI.SpVoice")
  19. SSFMCreateForWrite = 3
  20. SAFT16kHz16BitMono = 4
  21. for filename, text in VOICES.items():
  22. path = os.path.join(OUTPUT_DIR, filename)
  23. stream = win32com.client.Dispatch("SAPI.SpFileStream")
  24. af = win32com.client.Dispatch("SAPI.SpAudioFormat")
  25. af.Type = SAFT16kHz16BitMono
  26. stream.Format = af
  27. stream.Open(path, SSFMCreateForWrite)
  28. speaker.AudioOutputStream = stream
  29. speaker.Speak(text)
  30. stream.Close()
  31. print(f"生成: {path}")
  32. if __name__ == "__main__":
  33. main()