The language property "zh" denotes Mandarin Chinese. You can loop through all the voices included in pyttsx3 and at the time of this writing there are 3 supported Chinese voices (on a MacBook): Taiwanese, Hong Kong, and Chinese (mainland).
engine = pyttsx3.init()
voices = engine.getProperty('voices')
for voice in voices:
engine.setProperty('voice', voice.id)
if "zh" in voice.id:
print(voice.id)
I'm using a Mac, so the results may be different for you. But here is my result:
com.apple.voice.compact.zh-TW.Meijia
com.apple.voice.compact.zh-HK.Sinji
com.apple.voice.compact.zh-CN.Tingting
Here is an example code to audibly speak Chinese:
engine = pyttsx3.init()
voices = engine.getProperty('voices')
engine.setProperty('voice', "com.apple.voice.compact.zh-CN.Tingting")
engine.say('炒菜的时候,也可以放')
engine.runAndWait()
If you want a Chinese voice, for example, on a Windows computer, it is not included by default. You will have to first manually add one. Then you can run through the first code sample above and find the voice with "zh" in it. I did a test on a Windows machine and the name of the voice.id was "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0"