如何在Python中使用gTTS实现多语言文本转语音?
基于gTTS实现多语言文本转语音适配
gTTS原生支持包括中文在内的数十种语言,只需替换对应的语言代码即可完成多语言适配,具体操作如下:
1. 确认gTTS支持的语言列表
先通过代码查看所有可用的语言及对应代码,避免用错:
from gtts import gTTS # 打印所有支持的语言-代码映射 print(gTTS.langs())
常用语言代码示例:
- 简体中文:
zh-CN - 繁体中文:
zh-TW - 美式英文:
en-us - 日文:
ja - 韩文:
ko
2. 修改现有代码适配中文
直接替换language参数为中文代码,同时传入中文文本即可:
from gtts import gTTS import os myText = "你好,这是基于gTTS的中文语音合成测试" language = 'zh-CN' # 指定简体中文 output = gTTS(text=myText, lang=language, slow=False) output.save("output_zh.mp3") os.system("start output_zh.mp3")
3. 扩展为通用多语言适配程序
如果需要支持动态切换语言,可以封装成函数,增加错误处理避免无效语言代码导致的报错:
from gtts import gTTS import os def tts_convert(text, lang_code='en'): try: tts = gTTS(text=text, lang=lang_code, slow=False) save_path = f"output_{lang_code}.mp3" tts.save(save_path) os.system(f"start {save_path}") print(f"语音文件已生成:{save_path}") except ValueError as err: print(f"转换失败:{err},请检查语言代码是否正确") # 调用示例:用户输入文本和语言代码 user_text = input("请输入待转换文本:") user_lang = input("请输入语言代码(如zh-CN、en-us):") tts_convert(user_text, user_lang)
注意事项
- 语言代码必须严格匹配gTTS的支持列表,不同地区的同一种语言可能有不同代码(如英式英文为
en-gb) - 输入文本需与指定语言代码对应,否则会触发格式错误
slow参数对所有语言生效,设为True会降低语速,适合教学场景
内容的提问来源于stack exchange,提问作者Yogendran Prakash
相关产品推荐
相关产品推荐

