首页 > 编程语言 >python合成语音

python合成语音

时间:2023-12-26 16:14:40浏览次数:32  
标签:engine 语音 stream python text 合成 file open pyaudio

   

https://pythonjishu.com/tzzjavbepoesojm/

下面是另一个示例:

pip install pyttsx3
pip install gtts

  

将一个变量中的中文文本转换为语音,并使用 pyaudio 播放出来。

因为 pyaudio 库在 Windows 环境下可能会有问题,所以建议在 Linux 或 Mac 环境下测试。

import pyttsx3
import pyaudio

# 初始化 TTS 引擎
engine = pyttsx3.init()
engine.setProperty("rate", 150) # 设置语速
engine.setProperty("volume", 0.8) # 设置音量

# 定义待朗读的中文文本
text = "世界上没有垃圾,只有被人滥用的资源。"

# 设置 TTS 引擎的语言为中文
engine.setProperty("voice", "zh")

# 进行语音合成
engine.say(text)
engine.runAndWait()

# 播放合成的音频
chunk = 1024
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(2),
                channels=1,
                rate=44100,
                output=True)

with open("temp.wav", "wb") as file:
    engine.save_to_wav(file)

with open("temp.wav", "rb") as file:
    data = file.read(chunk)
    while data:
        stream.write(data)
        data = file.read(chunk)

stream.stop_stream()
stream.close()
p.terminate()

  

 

其他实例

如果需要保存mp3

from gtts import gTTS

# 读取文件中的文本内容
with open("example.txt", "r") as file:
    text = file.read()

# 设置语言类型为英文,语速为1.5倍
tts = gTTS(text, lang='en', slow=False)

# 保存音频
tts.save("example.mp3")

  

 

标签:engine,语音,stream,python,text,合成,file,open,pyaudio
From: https://www.cnblogs.com/gooutlook/p/17928348.html

相关文章

  • 如何用 python 做个简单服务器
    在Python中,你可以使用内置的http.server模块创建一个简单的HTTP服务器。这个模块提供了一个轻量级的Web服务器,非常适合用于测试和学习目的。以下是创建一个简单服务器的步骤:1.导入必要的模块:首先,你需要导入http.server模块,该模块包含了用于创建HTTP服务器的类。importhttp.server......
  • Python为什么空字符串的逻辑值是True
    在Python中,空字符串(即'')的逻辑值被定义为True。这是因为Python中的逻辑值是基于所谓的"真值测试"规则进行判断的。根据这个规则,除了一些特定的值被认为是False之外,其他所有的值都被认为是True。在Python中,以下值被认为是False:-None-False-0(包括0.0和其他表示零的数值)-空的容器对象(......
  • 为什么python总是读取不到文件
    在Python中,当你尝试读取文件但却无法成功时,可能有几个常见的原因。下面将探讨一些可能导致Python无法读取文件的问题,并提供相应的解决方案。1.文件路径错误:当你提供给Python的文件路径不正确时,它将无法找到该文件。确保你提供的文件路径是准确的,包括文件名和文件所在的文件夹路径。......
  • Python 项目多维列表如何实现
    在Python中,可以使用多维列表来表示和处理具有多个维度的数据。多维列表实际上是一个列表的列表,其中每个内部列表代表一个维度。本文将介绍如何创建、访问和操作多维列表。创建多维列表要创建一个多维列表,可以使用嵌套的列表结构。每个内部列表代表一个维度,可以包含任意数量的元素。......
  • 【python爬虫课程设计】掌上高考——高校数据爬取+数据可视化
    一、选题的背景选择此选题是因为掌上高考是一个提供本科院校信息的网站,通过爬取该网站的数据,可以获取到各个本科院校的相关信息,如学校名称、所在地、专业设置等。通过对这些数据进行分析和可视化,可以帮助学生更好地了解各个本科院校的情况,为他们的升学选择提供参考。预期目标是通......
  • 【Python微信机器人】第六七篇: 封装32位和64位Python hook框架实战打印微信日志
    目录修整目前的系列目录(后面会根据实际情况变动):在windows11上编译python将python注入到其他进程并运行注入Python并使用ctypes主动调用进程内的函数和读取内存结构体调用汇编引擎实战发送文本和图片消息(支持32位和64位微信)允许Python加载运行py脚本且支持热加载利用......
  • maturin 方便发布基于rust 的python 包工具
    maturin是PyO3团队开发的,方便我们开发基于rust的python包,比如PyO3的使用文档中就使用了此工具安装&使用安装(可选,可以基于venv安装)可以基于pip以及pipxpipxinstallmaturin创建一个简单项目python-mvenv.venvsource.venv/bin/activatepipinstallmaturinmaturin......
  • 运行js文件,会弹出一个python解释器的界面,怎么解决呢?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【菜......
  • 【Python】Python安装指定版本库
    Python安装指定版本库安装指定的版本库在平时代码开发中是很有必要的操作,毕竟有些库之间相互依赖,如果版本不在依赖的范围之内,我们安装的库会报安装的依赖版本有问题。先看一下命令:pipinstall库名=版本号1示例:pipinstallnumpy==1.21.51如果你下载库的速度比较慢或者没办法下......
  • !在 Python 中表示为 ​​not​​
    在Python中,!是一个逻辑运算符,在Python中表示为not,用于表示"非"或"不是"。它的优先级相对较高,仅次于括号和指数运算符。以下是Python运算符的优先级列表,从最高优先级(最具约束力)到最低优先级(最少约束力)¹²:()括号**指数+x,-x,~x一元加、一元减、按位取反*,/,//,......