暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

推荐一个文本转语音的python库:pyttsx3

运维笔谈 2024-01-15
2

平时上下班路上或者散步的时候,可以戴着耳机听一点东西,所以想找个工具能把文本文件转为音频文件。之前看了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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论