【文本转音频】pyttsx3详解

一、pyttsx3简介

pyttsx3 是一个Python库,用于在各种平台上实现文本到语音(Text-to-Speech,TTS)功能。它基于底层的 TTS 引擎,并提供了简单易用的接口,可以将文本转换为声音输出。

以下是 pyttsx3 的一些特点和功能:

  • 跨平台支持:pyttsx3 支持多种平台,包括Windows、Mac和Linux等。这意味着你可以在不同的操作系统上使用相同的代码实现文本到语音功能。
  • 多语言支持:该库支持多种语言,包括英语、中文、法语、德语、西班牙语等。你可以根据需要选择不同的语言设置。
  • 灵活的声音控制:pyttsx3 允许你通过调整音量、语速和音高等参数来控制生成的语音音频。你可以根据自己的需求来定制化这些设置。
  • 事件驱动的架构:它采用事件驱动的设计模式,可以在合成过程中监听并处理不同的事件。例如,你可以捕获开始合成、合成进度和合成结束等事件。
  • 异步合成:pyttsx3 还支持异步合成,这意味着你可以在后台线程中进行文本到语音的合成,同时不会阻塞主线程的执行。

安装命令:`

conda:conda pip pyttsx3
pip:pip install pyttsx3

二、实现将文本转成音频

代码示例:

import pyttsx3

def use_pyttsx3(text):
	engine = pyttsx3.init() #初始化一个ptttsx3引擎
	rate = engine.getProperty("rate") #获取engine的属性参数方法,有rate,volume,voice,voices,使用setProperty("",value)可以进行设置
	engine.setProperty("rate",170) #设置rate语音速率为150
	engine.setProperty("volue",1.0) #设置语音音量为1.0,范围为0-1

	voices = engine.getProperty("voices")
	#print(voices[0])
	engine.setProperty("voice",voices[0].id)

	#text = "黄河之水天上来,奔流到海不复回。"

	a = engine.say(text) #进行转换文本至声音,并播放出来
	engine.runAndWait() #启动引擎并等待语音播放完成。它会阻塞当前线程,直到语音播放完毕
	engine.stop() #停止当前正在播放的语音

	#将文本转成语言保存在本地:
	#text:需要进行转换的文本
	#filename:保存的文件路径
	#name:可选参数,表示选择用于语音合成的声音类型。可以通过设置该参数来选择不同的语音。
	engine.save_to_file(text,filename="ceshi.wav",name = 'test') 
	engine.runAndWait() #阻塞当前线程,等待保存完成

if __name__ == "__main__":
	text = "注意看,这个男人是一个沸羊羊"
	use_pyttsx3(text)

`

猜你喜欢

转载自blog.csdn.net/weixin_43958438/article/details/131747731