pyttsx3文本转语音使用指南

以下是 pyttsx3 的详细使用说明,这是一个 Python 文本转语音(TTS)库,支持离线使用且跨平台(Windows、Linux、macOS)。


安装

pip install pyttsx3

注意

  • Linux 系统可能需要安装依赖:espeaklibespeak(例如 Ubuntu/Debian:sudo apt install espeak)。
  • macOS 可能需要 Xcode 命令行工具。

基础使用

1. 初始化引擎

import pyttsx3

# 初始化 TTS 引擎
engine = pyttsx3.init()

2. 朗读文本

engine.say("你好,欢迎使用 pyttsx3 文本转语音库。")
engine.runAndWait()  # 阻塞程序直到语音播放完成

调整语音参数

1. 获取当前属性

# 获取语速(默认值通常为 200)
rate = engine.getProperty('rate')
print(f"当前语速: {rate}")

# 获取音量(范围 0.0~1.0)
volume = engine.getProperty('volume')
print(f"当前音量: {volume}")

# 获取当前使用的声音
voices = engine.getProperty('voices')
current_voice = engine.getProperty('voice')
print(f"当前声音: {current_voice}")

2. 设置属性

# 设置语速(值越小语速越慢)
engine.setProperty('rate', 150)  

# 设置音量(0.0~1.0)
engine.setProperty('volume', 0.8)  

# 设置声音(通过索引选择不同语音)
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)  # 选择第一个声音

切换不同声音

不同系统支持的声音类型:

  • Windows: SAPI5 驱动,通常包含多种系统语音(如中文、英文)。
  • Linux: espeak 驱动,需安装额外语音包支持中文。
  • macOS: NSSpeechSynthesizer 驱动。
# 列出所有可用声音
voices = engine.getProperty('voices')
for idx, voice in enumerate(voices):
    print(f"声音 {idx}: {voice.name} | 语言: {voice.languages}")

# 选择特定声音(例如第二个)
engine.setProperty('voice', voices[1].id)

保存语音到文件

# 保存为音频文件(格式取决于系统,Windows 通常为 .wav)
engine.save_to_file("这是要保存的文本", "output.mp3")
engine.runAndWait()  # 必须调用以生成文件

注意:部分系统可能不支持直接保存为 MP3,可尝试保存为 WAV 格式。


完整示例

import pyttsx3

# 初始化引擎
engine = pyttsx3.init()

# 设置参数
engine.setProperty('rate', 150)
engine.setProperty('volume', 0.9)

# 切换声音(示例:选择第二个声音)
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[1].id)

# 朗读文本
engine.say("你好,这是一个测试语句。")
engine.say("Hello, this is a test sentence.")

# 保存为文件
engine.save_to_file("保存这段语音到文件。", "output.wav")

# 等待所有任务完成
engine.runAndWait()

注意事项

  1. 阻塞与非阻塞runAndWait() 是阻塞方法,确保语音播放完毕后再继续程序。
  2. 异步支持:可通过事件循环实现异步(参考 engine.startLoop())。
  3. 跨平台差异:不同系统的语音质量和可用声音可能不同,Windows 通常支持更丰富的声音。
  4. 中文支持:部分系统需额外配置中文语音库(如 Linux 安装中文语音包)。

常见问题

  • 报错 No module named 'pyttsx3':确认是否已安装库,或尝试重启 Python 环境。
  • 无法播放中文:检查系统是否支持中文语音(Windows 可在“设置-语音”中管理语音包)。
  • 保存文件失败:确保路径可写,或尝试使用绝对路径。

通过上述步骤,你可以轻松使用 pyttsx3 实现文本转语音功能。

posted @ 2025-05-27 16:52  天堂面包  阅读(636)  评论(0)    收藏  举报