使用Google TTS生成泰卢固语音频遇Unicode转义错误求助
问题分析与解决方案
错误原因定位
你遇到的SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape错误,本质是Python解析字符串时碰到了不完整的Unicode转义序列(比如\U后未跟上8位十六进制字符),大概率是CSV文件内容或读取环节出了问题,和泰卢固语本身的编码无关。
排查与修复步骤
1. 检查CSV文件内容与编码
- 确认字符原生性:用Notepad++等编辑器打开CSV,确保泰卢固语词汇是直接显示的原生字符,而非手动输入的
\U开头转义序列(比如不要写\U0C2A\U0C46\U0C30,直接写泰卢固语本身的字符)。 - 统一编码格式:将CSV保存为无BOM的UTF-8编码(Notepad++可通过「编码」→「UTF-8无BOM」设置),带BOM的UTF-8可能导致Python读取时出现解码异常。
2. 优化脚本的CSV读取逻辑
- 改用原始字符串写法统一路径,避免转义歧义:
# 替换CSV和导出路径为原始字符串 with open(r"C:\testscript.csv", 'r', newline='', encoding='utf-8') as csvfile: # ... 其他代码 ... final_audio.export(r"C:\audio2.wav", format="wav") - 添加错误处理参数,避免解码失败中断脚本:
with open(r"C:\testscript.csv", 'r', newline='', encoding='utf-8', errors='replace') as csvfile: - 增加日志输出,验证读取到的内容:在
phrase = row[0]后添加打印语句,确认读取到的泰卢固语字符是否正确:phrase = row[0] lang = row[1] print(f"当前读取: 短语={phrase}, 语言={lang}")
3. 验证Google TTS语音可用性
确认te-IN-Standard-B语音是否仍在支持列表中,Google TTS的语音名称可能会更新(比如现在推荐使用te-IN-Wavenet-A等波表语音),可以通过Google Cloud控制台的TTS测试工具验证泰卢固语语音的有效性。
内容的提问来源于stack exchange,提问作者Incertus
相关产品推荐
相关产品推荐

