1、pyttsx3
pyttsx3 是一个用于文本到语音(Text-to-Speech, TTS)合成的 Python 库。
它是 pyttsx 的升级版本,具有更好的兼容性和一些新功能。pyttsx3 是基于 ESpeak 引擎的封装,可以在不同的操作系统上运行,并提供简单而直观的 API 来进行文本到语音的合成。
以下是 pyttsx3 的一些基本功能和用法:
- 文本到语音合成: 提供简单的接口,可以将文本转换为语音。
- 多平台支持: pyttsx3 可以在多种平台上运行,包括 Windows、Linux 和 macOS。
- 异步播放: 提供异步操作接口,可以在后台合成语音并播放,而不阻塞程序的其他部分。
- 设置语音引擎属性: 允许用户配置一些语音引擎的属性,如声音的音量、语速等。
- 支持多种语言: 提供多种语言的语音合成支持。
2、安装命令
pip.exe install pyttsx3
以下是一个简单的示例,演示了如何使用 pyttsx3 将文本转换为语音并播放:
import pyttsx3
def text_to_speech(text):
# 创建 TTS 引擎
engine = pyttsx3.init()
# 设置语速(可选)
engine.setProperty('rate', 150)
# 设置声音音量(可选)
engine.setProperty('volume', 0.9)
# 合成并播放文本
engine.say(text)
engine.runAndWait()
# 示例:将文本转换为语音并播放
text_to_speech("Hello, this is an example of text-to-speech synthesis using pyttsx3.")
pyttsx3 是一个简单易用的库,适用于快速实现基本的文本到语音功能。如果你需要更高级的 TTS 功能,例如更多语音效果、更多语音引擎的选择,可能需要考虑其他更专业的 TTS 库。
3、中文转语音
这个例子把一篇文章转成语音文件
# -*- coding:utf-8 -*-
import pyttsx3
from pyttsx3.voice import Voice
def get_chinese_voice(engine: pyttsx3.engine.Engine) -> Voice:
voices = engine.getProperty("voices")
for voice in voices:
print(voice.name)
if "Chinese" in voice.name or "Mandarin" in voice.name.title():
return voice
raise RuntimeError(f"No Chinese voice found among {voices}")
def text_to_speech(text, output_file='output.mp3'):
# 初始化 TTS 引擎
engine = pyttsx3.init()
# 设置语音参数
# engine.setProperty('rate', 150) # 语速,可以调整
engine.setProperty('volume', 1) # 音量,取值范围 0.0 到 1.0
chinese_voice = get_chinese_voice(engine)
engine.setProperty("voice", chinese_voice.id)
# 将文本转换为语音
engine.save_to_file(text, output_file)
# 关闭 TTS 引擎
engine.runAndWait()
text = '''
我是一只丑小鸭咿呀咿呀喂呱呱
门前大桥下游过一群鸭
快来快来数一数二四六七八
'''
# 示例用法
text_to_speech(text, 'output.mp3')
参考文档:
GitHub - RapidWareTech/pyttsx: Cross-platform text-to-speech wrapper