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())