当前位置:   article > 正文

python之pyttsx3实现文字转语音播报_为了完成本关任务,你需要掌握: 1.利用pyttsx3调用接口实现语音文字转化; 2.如何利

为了完成本关任务,你需要掌握: 1.利用pyttsx3调用接口实现语音文字转化; 2.如何利

1. pyttsx3是什么

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

2. pyttsx3的安装

pip install pyttsx3
  • 1

3. pyttsx3的demo

import pyttsx3

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

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

import pyttsx3

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

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

voices = engine.getProperty('voices') 
for voice in voices:
    print(voice)
  • 1
  • 2
  • 3

输出结果如下:

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

引擎的朗读命令:

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

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

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

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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5. 搞个ToDo吧!

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/911530
推荐阅读
相关标签
  

闽ICP备14008679号