平时上下班路上或者散步的时候,可以戴着耳机听一点东西,所以想找个工具能把文本文件转为音频文件。之前看了gTTS(Google Text-to-Speech),很无奈要访问Google Cloud,只能放弃。
推荐一个文本转语音的python库pyttsx3,pyttsx3 是一个用 Python 编写的跨平台文本转语音(TTS,Text-to-Speech)库。国内可以使用。

pyttsx3功能
跨平台支持:可以在多种操作系统上使用,如Windows、macOS及Linux等。
离线工作:能够在本地环境中将文本实时转换为语音输出,无需互联网连接。
API 简洁性:提供了一个相对简单易用的编程接口,开发者可以方便地通过调用函数实现文本到语音的转换。
自定义选项:能够调整声音输出的各种参数,包括语速(rate)、音量(volume)、语调(pitch)等。
多引擎支持:尽管底层具体实现可能因系统而异,但通常能够利用系统内置或已安装的 TTS 引擎来合成音频。
兼容性:与Python 2和Python 3都兼容,使得在不同Python版本的项目中都能使用。
安装使用pyttsx3
# 安装pyttsx3
pip install pyttsx3
2.简单的文本文件转语音的小示例参考:
import pyttsx3
def text_to_speech(text_file_path, output_path):
# 打开并读取文本文件内容
with open(text_file_path, 'r', encoding='utf-8') as file:
text = file.read()
# 创建语音合成器对象
engine = pyttsx3.init()
# 设置语音合成器属性(例如语速、音量等)
engine.setProperty('rate', 150) # 语速,默认为200
engine.setProperty('volume', 1) # 音量,默认为1
# 下面将音调提高一个等级,让声音听起来更明亮一些
engine.setProperty('pitch', 150) # 值越大音调越高
# 调整发音人或声音类型(如果有多个可用的声音)
# voices = engine.getProperty('voices')
# print(voices)
# 选择第0个发音人,实际应用中需要根据具体语言和系统支持来决定
# engine.setProperty('voice', voices[0].id) # 第二个是英文识别,用默认的
# 将文本转换为语音
engine.save_to_file(text, output_path)
engine.runAndWait()
# 示例用法
text_file_path = '测试.txt'
output_path = '测试.mp3'
text_to_speech(text_file_path, output_path)

文章转载自运维笔谈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




