You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Python pyttsx3读取CSV文件时不朗读‘backslash n’等非文本内容

问题与代码

以下是用于读取CSV内容并转为语音播放的Python代码:

import csv
import pyttsx3

engine = pyttsx3.init()


with open('file.csv', 'r', encoding='utf8') as csv_file:
    csv_reader = csv.reader(csv_file)

    next(csv_reader)

    for line in csv_reader:
        title = line[1]
        text = line[5]
        print(title,text)
        while True:
            speech = (title,text)
            engine.say(speech)
            engine.runAndWait()

代码可正常运行,但存在问题:语音会朗读“backslash n”这类非预期的转义字符内容。想明确是需要优化CSV文件格式,还是更换其他文本转语音库?


解决方案

优先修复代码问题

  1. 避免传入元组给engine.say
    你当前将(title, text)元组直接传给engine.say,pyttsx3会把元组的结构(括号、逗号)以及内容里的转义字符表示都当作普通文本朗读。需要将两者拼接成字符串:
# 用f-string拼接,自动处理空格
speech = f"{title} {text}"
  1. 清理转义字符
    如果CSV内容里存在\n或“backslash n”这类文本,直接用字符串替换处理:
# 替换转义字符表示为空格,也可根据需求改为空字符串
clean_title = title.replace("\\n", " ").replace("backslash n", " ")
clean_text = text.replace("\\n", " ").replace("backslash n", " ")
speech = f"{clean_title} {clean_text}"

关于CSV格式与语音库的选择

  • CSV格式优化:如果CSV里的转义字符是手动输入的冗余内容,可直接在CSV文件中替换或删除这类内容,从源头避免问题。
  • 语音库更换:修复代码后如果仍不满意,可尝试gTTS或elevenlabs等库,但多数情况下无需更换,代码修复即可解决问题。

内容的提问来源于stack exchange,提问作者AEdgecombe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:10:23