Python文字转语音并播放

用Python将给定的文本转换成语音并播放,首先要导入以下库。

import os
from pygame import mixer
import pyttsx3

之后,分两步进行文本转语音操作:

1.将文本生成音频文件

参数input_text是需要朗读的字符串,返回值output_path是生成的语音文件。

    def m_generatetts(input_text):  # 输出input_text,生成相应的语音文件
        # 获取输入的文本内容
        # input_text = text_entry.get("0.0", "end-1c")
        # 初始化 TTS 引擎
        engine = pyttsx3.init()
        global cansaveornot
        try:
            # 设置语速、音量等参数(根据需求自行调整)
            engine.setProperty('rate', 150)  # 默认值为 200
            engine.setProperty('volume', 0.8)  # 默认值为 1.0
            if not os.path.exists('./tmp/'):  # 检测文件夹是否存在,如果不存在则创建
                os.makedirs('./tmp/')
                # print("文件夹已检查并创建")
            output_path = './tmp/outputtts.wav'  # output_path是临时生成的TTS语音文件
            if os.path.exists(output_path):  # 如果检测到已经存在该文件,则先退出进程,然后删除掉该文件
                mixer.quit()  # 退出语音进程
                os.remove(output_path)  # 删除掉语音文件
                # print(f"文件 {output_path} 删除成功!")
            # 将文本转换为语音并保存到指定路径

            engine.save_to_file(input_text, output_path)  # 保存语音文件
            engine.runAndWait()
            # print("已保存为 %s" % output_path)
            cansaveornot = 'yes'  # 生成的文件保存成功才允许导出操作
            return output_path
        except Exception as e:
            print("发生错误:", str(e))

2.播放音频文件

参数filepath是第一步生成出来的wav音频文件地址。

    def m_playaudio(filepath):  # filepath是WAV格式的语音文件地址,播放该文件
        mixer.init()
        size = 0.7
        mixer.music.set_volume(size)
        mixer.music.load(filepath)
        mixer.music.play()

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值