python文字识别转语音完整代码,文字转语音 python
# -*-编码:utf-8 -*-
导入pyttsx3
f=打开( all.txt , r )
line=f.readline()
engine=pyttsx3.init()
正在…行:
line=f.readline()
打印(行,结束= )
引擎。说(线)
engine.runAndWait()
f.close()
安装
点安装pyttsx3
语音引擎工厂
类似于设计模式中的工厂模式“,pyttsx3通过初始化来获取语音引擎。当我们第一次调用初始化操作的时候,会返回一个pyttsx3的发动机对象,再次调用的时候,如果存在发动机对象实例,就会使用现有的,否则再重新创建一个。
pyttsx.init([driverName : string,debug : bool]) pyttsx .发动机
从方法声明上来看,第一个参数指定的是语音驱动的名称,这个在底层适合操作系统密切相关的。如下:
1 .驱动名:由pyttsx3.driver模块根据操作系统类型来调用,默认使用当前操作系统可以使用的最好的驱动
Windows操作系统上的萨皮5 -萨皮5
操作系统上的nsss-ns speech合成仪
espeak -其他平台上的espeak
调试:这第二个参数是指定要不要以调试状态输出,建议开发阶段设置为真实的
引擎接口
要想很好的运用一个库,不了解其应用程序接口是不行的。下面来看看pyttsx3。引擎。发动机的引擎API。
方法签名
参数列表
返回值
简单释义
连接(主题:字符串,cb:可调用)
主题:要描述的事件名称;cb:回调函数
字典
在给定的主题上添加回调通知
断开连接(令牌:字典)
令牌:回调失联的返回标记
空的
结束连接
结束循环()
没有人
无
简单来说就是结束事件循环
getProperty(名称:字符串)
名字有这些枚举值速率、音量、音量、音量
对象
获取当前引擎实例的属性值
setProperty(名称:字符串)
名字有这些枚举值速率、音量、音量、音量
对象
设置当前引擎实例的属性值
说(文本:unicode,名称:字符串)
文本:要进行朗读的文本数据;名称:关联发音人,一般用不到
无
预设要朗读的文本数据,这也是万事俱备,只欠东风"中的万事俱备"
runAndWait()
没有人
无
这个方法就是东风"了。当事件队列中事件全部清空的时候返回
开始循环([useDriverLoop : bool])
useDriverLoop:是否启用驱动循环
无
开启事件队列
元数据音调
在pyttsx3.voice.Voice中,处理合成器的发音。
年龄
发音人的年龄,默认为没有人
性别
以字符串为类型的发音人性别:男性、女性或中性。默认为没有人
编号
关于声音的字符串确认信息。通过pyttsx 3。引擎。引擎。设置属性值()来设置活动发音签名。这个属性总是被定义。
语言
发音支持的语言列表,如果没有,则为一个空的列表。
名字
发音人名称,默认为没有。
更多测试
朗读文本
导入pyttsx3
engine=pyttsx3.init()
引擎。说(’莎莉在海边卖贝壳。)
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)
engine.runAndWait()
事件监听
导入pyttsx3
定义onStart(名称):
打印"起始",姓名
定义单词(名称、位置、长度):
打印"单词",名称,位置,长度
def onEnd(姓名,已完成):
打印"完成",名称,已完成
engine=pyttsx3.init()
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)
engine.runAndWait()
打断发音
导入pyttsx3
定义单词(名称、位置、长度):
打印("单词"、名称、位置、长度)
如果位置10:
发动机停止()
engine=pyttsx3.init()
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)
engine.runAndWait()
更换发音人声音
engine=pyttsx3.init()
声音=引擎。getproperty(“声音”)
对于声音中的声音:
engine.setProperty(voice ,voice.id)
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)
engine.runAndWait()
语速控制
engine=pyttsx3.init()
rate=engine.getProperty(rate )
engine.setProperty(rate ,rate 50)
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)
engine.runAndWait()
音量控制
engine=pyttsx3.init()
体积=发动机。getproperty(卷)
engine.setProperty(volume ,volume-0.25)
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。)
engine.runAndWait()
执行一个事件驱动循环
engine=pyttsx3.init()
定义onStart(名称):
打印("起始",名称)
定义单词(名称、位置、长度):
打印("单词"、名称、位置、长度)
def onEnd(姓名,已完成):
打印("完成",名称,已完成)
if name==fox :
engine.say(多懒的狗啊!,狗)
elif name==dog :
engine.endLoop()
engine=pyttsx3.init()
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。,狐狸)
engine.startLoop()
使用一个外部的驱动循环
engine=pyttsx3.init()
引擎。说(’那只敏捷的棕色狐狸跳过了那只懒狗。,狐狸)
engine.startLoop(False)
必须在外部循环()内部调用# engine.iterate()
外部循环()
engine.endLoop()
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。