上面pyttsx3测试代码虽然可以支持英文语音合同,但如果用中文文本却无法正常转换出中文语音。可能有两种原因:
需要设置pyttsx3 engine为中文没有HUIHUI语音包;1 设置pyttsx3 engine为中文示例:
engine.getProperty('voice', 'zh') 通过如下代码可以检查win10系统里面的语音引擎: voices = engine.getProperty('voices') for item in voices: print(item) <Voice id=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0 name=Microsoft Huihui Desktop - Chinese (Simplified) languages=[] gender=None age=None> <Voice id=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0 name=Microsoft Zira Desktop - English (United States) languages=[] gender=None age=None>如果没有“TTS_MS_ZH-CN_HUIHUI_11.0”,则无法使用中文TTS。具体是什么原因导致win系统没有HUIHUI语音引擎,本人目前也没有完全搞清楚。
在树莓派上需要先安装espeak。
sudo apt install espeak engine.getProperty('voice', 'zh')