| import edge_tts |
| import asyncio |
|
|
| async def test_edge_tts(): |
| print("测试Edge TTS库...") |
| try: |
| |
| voices = await edge_tts.list_voices() |
| print(f"获取到 {len(voices)} 种语音") |
| |
| |
| text = "Welcome to Edge TTS" |
| voice = "en-US-JennyNeural" |
| |
| print(f"\n正在合成语音: {text}") |
| print(f"使用语音: {voice}") |
| |
| communicate = edge_tts.Communicate(text, voice) |
| audio_data = b"" |
| |
| async for chunk in communicate.stream(): |
| if chunk["type"] == "audio": |
| audio_data += chunk["data"] |
| elif chunk["type"] == "WordBoundary": |
| print(f"\r正在处理: {chunk['text']}", end="") |
| |
| if audio_data: |
| print(f"\n\n语音合成成功,音频大小: {len(audio_data)} 字节") |
| with open("direct_edge_tts.mp3", "wb") as f: |
| f.write(audio_data) |
| print("音频已保存为 direct_edge_tts.mp3") |
| return True |
| else: |
| print("\n\n错误: 没有获取到音频数据") |
| return False |
| |
| except Exception as e: |
| print(f"\n\n错误: {e}") |
| import traceback |
| traceback.print_exc() |
| return False |
|
|
| if __name__ == "__main__": |
| asyncio.run(test_edge_tts()) |
|
|