pyttsx3python3使用说明

pyttsx3python3使⽤说明python3 pyttsx3 ⽂字转语⾳库使⽤
最近再做⼀个项⽬,需要⽂字转语⾳,决定使⽤此库了。
1.安装
pip install pyttsx3
# 若未安装pywin32, 需要安装此库的
pip install pywin32
2.官⽅⽂档
3.使⽤
简单使⽤
import pyttsx3
# 初始化,必须要有奥
engine = pyttsx3.init()
engine.say('Sally sells seashells by the seashore.')
engine.say('The quick brown fox jumped over the lazy dog.')
# 注意,没有本句话是没有声⾳的
engine.runAndWait()
播放中⽂语⾳,python3下直接写就好了,不需要设置语⾔blabla的
就不要在意合成语⾳的僵硬问题了。。。
import pyttsx3
# 初始化,必须要有奥
engine = pyttsx3.init()
engine.say('语⾳合成开始')
engine.say('我会说中⽂了,开森,开森')
# 注意,没有本句话是没有声⾳的
engine.runAndWait()
我在这项⽬要⽤的,如果要多次调⽤say()函数,并不是⼀次调⽤就结束了。
每次调⽤都有加上engine.runAndWait()就可以了
import pyttsx3
# 初始化,必须要有奥
engine = pyttsx3.init()
engine.say('语⾳合成开始')
engine.say('我会说中⽂了,开森,开森')
# 注意,没有本句话是没有声⾳的
engine.runAndWait()
engine.say('我能说第⼆句话了')
engine.runAndWait()
来看⼀下复杂⼀点的, 通过条件语句来确定播报语⾳
import pyttsx3
engine = pyttsx3.init()
def VOICE_TEXT(names):
unknown_name = []
known_name = []
for name in names:
if name == 'Unknown':
unknown_name.append(name)
else:
known_name.append(name)
# 记录两类⼈数量
num_known = len(known_name)
num_unknown = len(unknown_name)
if len(names) == 0:
return
# 5s 播报⼀次
elif num_unknown == 0:
text = '欢迎'
for index in range(num_known):
if index + 1 == num_known and index != 0:
text += '和{}'.format(known_name[index])
else:
text += known_name[index]
engine.say(text)
engine.runAndWait()
# 3s 播报⼀次
elif num_known == 0:
text = '警告,警告,有陌⽣⼈未识别,有陌⽣⼈未识别'
ca3660engine.say(text)
engine.runAndWait()
# 7s 播报⼀次
else:
text = '欢迎'
for index in range(num_known):
if index + 1 == num_known and index != 0:
text += '和{}'.format(known_name[index])
else:
text += known_name[index]
engine.say(text)
engine.say('请注意,您旁边有未识别⼈员,您将不允许进⼊,请询问值班⼈员,谢谢合作')
engine.runAndWait()
if __name__ == '__main__':
names = ['醉陌', '醉陌']
VOICE_TEXT(names)
names_ = ['Unknown', '醉陌']
VOICE_TEXT(names_)
names__ = ['Unknown']
VOICE_TEXT(names__)
最终实现, 程序中定时调⽤某⼀个函数,⽽在此函数中调⽤语⾳播报函数,于是添加了⼏个变量来维护函数播报与否import pyttsx3
import pyttsx3
KUNOWN = 0
UNKNOWN = 0
UNKNOWN_KNOWN = 0
engine = pyttsx3.init()
engine.setProperty('voice', 'zh')
毛发生长剂def VOICE_TEXT(names):
unknown_name = []
known_name = []
for name in names:
if name == 'Unknown':
unknown_name.append(name)
else:
known_name.append(name)
# 记录两类⼈数量
num_known = len(known_name)
num_unknown = len(unknown_name)
if len(names) == 0:
return
# 5s 播报⼀次
elif num_unknown == 0:
global KUNOWN
KUNOWN += 1
print('KUNOWN:', KUNOWN)
家电控制板if KUNOWN == 15:
KUNOWN = 1
text = '欢迎'
for index in range(num_known):
if index + 1 == num_known and index != 0:
text += '和{}'.format(known_name[index])
张力控制
else:
text += known_name[index]
engine.say(text)
engine.runAndWait()
# 3s 播报⼀次
elif num_known == 0:
global UNKNOWN
UNKNOWN += 1
print('UNKNOWN', UNKNOWN)
if UNKNOWN == 10 :
UNKNOWN = 1
text = '警告,警告,有陌⽣⼈未识别,有陌⽣⼈未识别'            engine.say(text)
engine.runAndWait()
# 7s 播报⼀次
贴片led封装else:
global UNKNOWN_KNOWN
UNKNOWN_KNOWN += 1
print('UNKUOWN_KNOWN', UNKNOWN_KNOWN) if UNKNOWN_KNOWN == 25:
UNKNOWN_KNOWN = 2
text = '欢迎'
for index in range(num_known):
if index + 1 == num_known and index != 0:
text += '和{}'.format(known_name[index])
else:
text += known_name[index]
engine.say(text)
engine.say(text)
engine.say('请注意,您旁边有未识别⼈员,您将不允许进⼊,请询问值班⼈员,谢谢合作')            engine.runAndWait()
if __name__ == '__main__':
卷纸架
names = ['醉陌', '醉陌']
VOICE_TEXT(names)

本文发布于:2024-09-21 22:02:55,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/208368.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:播报   需要   函数   转语
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议