MCP Agent Platform

by rolenet
Verified
""" 测试TTS语音播放功能 """ import pyttsx3 import time import logging # 设置日志 logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', ) logger = logging.getLogger("TTS-Test") def test_tts(): """测试TTS引擎""" try: logger.info("开始初始化TTS引擎") engine = pyttsx3.init() # 获取可用的语音 voices = engine.getProperty('voices') logger.info(f"可用语音数量: {len(voices)}") for i, voice in enumerate(voices): logger.info(f"语音 {i}: ID={voice.id}, Name={voice.name}, Languages={voice.languages}") # 设置语音属性 engine.setProperty('rate', 150) # 语速 engine.setProperty('volume', 0.9) # 音量 # 尝试设置中文语音 chinese_voice = None for voice in voices: if 'chinese' in voice.name.lower() or 'zh' in voice.id.lower(): chinese_voice = voice.id break if chinese_voice: logger.info(f"设置中文语音: {chinese_voice}") engine.setProperty('voice', chinese_voice) # 测试播放 test_text = "这是一个测试消息,测试语音播放功能是否正常。" logger.info(f"准备播放测试语音: {test_text}") engine.say(test_text) logger.info("调用runAndWait开始播放") engine.runAndWait() logger.info("语音播放完成") # 再测试一次英文 test_text_en = "This is a test message for speech synthesis." logger.info(f"准备播放英文测试语音: {test_text_en}") engine.say(test_text_en) logger.info("调用runAndWait开始播放") engine.runAndWait() logger.info("英文语音播放完成") return True except Exception as e: logger.error(f"TTS测试失败: {e}") return False if __name__ == "__main__": logger.info("开始TTS测试") result = test_tts() logger.info(f"TTS测试结果: {'成功' if result else '失败'}")