pyttsx3播放本地语音
时间: 2024-12-30 13:30:56 浏览: 6
### 使用 `pyttsx3` 播放本地语音文件
需要注意的是,`pyttsx3` 主要用于将文本转换为语音并播放,并不是设计用来直接播放已有的音频文件。如果目标是播放本地存储的语音文件,通常会使用其他专门处理音频文件的库,比如 `pygame` 或者 `playsound`。
然而,在某些情况下,可以先加载特定的语音配置再通过 `pyttsx3` 将指定的文字转化为近似于该语音风格的声音输出。但这并不意味着可以直接打开和播放现有的 `.wav`, `.mp3` 等格式的录音文件[^1]。
对于想要实现的效果——即利用系统内置或自定义的TTS功能来模拟某个具体声音特性来说,可以通过调整 `pyttsx3` 的参数设置达到目的:
```python
import pyttsx3
engine = pyttsx3.init()
# 设置语速
rate = engine.getProperty('rate')
engine.setProperty('rate', rate - 50)
# 获取当前音量 (min=0 , max=1)
volume = engine.getProperty('volume')
engine.setProperty('volume', volume-0.25)
# 列举可用发音人
voices = engine.getProperty('voices')
for voice in voices:
print(f"ID: {voice.id}, Name:{voice.name}")
# 更改发音人为女性或其他偏好选项
engine.setProperty('voice', voices[1].id)
text_to_speak="这是测试文本"
engine.say(text_to_speak)
engine.runAndWait()
```
上述代码展示了如何修改说话速率、音量以及选择不同的发音人来进行个性化的声音合成操作[^4]。
但是为了真正意义上播放一个已经存在的本地语音文件,则建议采用如下方式之一:
#### 方法一:使用 `playsound` 库播放 MP3/WAV 文件
```python
from playsound import playsound
audio_file_path='./example.mp3'
playsound(audio_file_path)
```
#### 方法二:借助 `pygame` 来控制更复杂的多媒体应用
```python
import pygame
def play_music(file):
track = file
pygame.mixer.music.load(track)
pygame.mixer.music.play(-1)
if __name__ == "__main__":
pygame.init()
audio_file="./example.wav"
play_music(audio_file)
while True:
pass
```
这两种方法都可以很好地满足直接播放本地语音的需求而不必经过 TTS 转换过程。
阅读全文