1. pyttsx3是什么

pyttsx3是Python中的文本到语音转换库,可以实现文本的朗读功能。

2. pyttsx3的安装

pip install

3. pyttsx3的demo

import pyttsx3

pyttsx3.speak("Are you ok?")
pyttsx3.speak("最近有许多打工人都说打工好难")

戴上耳机直接跑即可。是不是很简单!那如果我们想对读音的速率,中英文问题进行自定义设置呢?可以用pyttsx3初始化来获取语音引擎,在调用init后会返回一个engine对象,对engine对象进行操作即可。

import pyttsx3

engine = pyttsx3.init('sapi5') # 获取一个引擎,默认是sapi5
engine.setProperty('rate', 130) # 设置朗读的速率
engine.setProperty('volume',0.6) # 设置朗读的音量

如果使用引擎,则需要主要朗读中文和朗读英文是需要区别对待的,如何查看语音合成器类别(看看有什么朗读种类)?

voices = engine.getProperty('voices') 
for voice in voices:
print(voice)

输出结果如下:

<Voice id=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ZH-CN_HUIHUI_11.0
name=Microsoft Huihui Desktop - Chinese (Simplified)
languages=[]
gender=None
age=None>
<Voice id=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
name=Microsoft Zira Desktop - English (United States)
languages=[]
gender=None
age=None>

默认的语音合成器有两个,两个语音合成器均可以合成英文音频,但只有第一个合成器能合成中文音频。如果需要其他的语音合成器需要自行下载和设置。如何选择合成器,代码如下:

voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id) # 如果选用voices[0]则表示朗读中文
engine.setProperty('voice', voices[1].id) # 如果选用voices[1]则表示朗读英文

引擎的朗读命令:

engine.say("要讲的内容")
engine.runAndWait() # 运行所有指令后等待下一次指令循环
engine.stop() # 直接朗读中断

如果有需要,想将朗读的内容保存为MP3,可以使用如下命令:

engine.save_to_file(text, 'test.mp3')    # 将要朗读的text转成MP3文件

4. 完整的demo

import pyttsx3

engine = pyttsx3.init('sapi5')
engine.setProperty('rate', 130)
engine.setProperty('volume', 0.6)
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)


def speak(audio):
engine.say(audio)
engine.runAndWait()


text = "最近有许多打工人都找我说打工好难"
speak(text)
engine.save_to_file(text, 'test.mp3')

5. 搞个ToDo吧!

可以每天早、中、晚爬取热搜文本,然后将其做成MP3,不想刷新闻的时候,可以听听播报,放松一下眼睛也是不错的选择!