使用Speech API
原理
我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相关的接口。所以我们需要安装pywin32来帮助我们完成这一个底层的交互。
示例代码
语音引擎工厂
类似于设计模式中的“工厂模式”,pyttsx通过初始化来获取语音引擎。当我们第一次调用init操作的时候,会返回一个pyttsx的engine对象,再次调用的时候,如果存在engine对象实例,就会使用现有的,否则再重新创建一个。
pyttsx.init([driverName : string, debug : bool]) → pyttsx.Engine
从方法声明上来看,第一个参数指定的是语音驱动的名称,这个在底层适合操作系统密切相关的。如下:
drivename:由pyttsx.driver模块根据操作系统类型来调用,默认使用当前操作系统可以使用的最好的驱动
sapi5 - SAPI5 on Windows
nsss - NSSpeechSynthesizer on Mac OS X
espeak - eSpeak on every other platform
debug: 这第二个参数是指定要不要以调试状态输出,建议开发阶段设置为True
引擎接口
要想很好的运用一个库,不了解其API是不行的。下面来看看pyttsx。engine.Engine的引擎API。
方法签名参数列表返回值简单释义connect(topic : string, cb : callable)topic:要描述的事件名称;cb:回调函数→ dict在给定的topic上添加回调通知disconnect(token : dict)token:回调失联的返回标记Void结束连接endLoop()→ 简单来说就是结束事件循环getProperty(name : string)name有这些枚举值“rate, vioce,vioces,volumn→ object获取当前引擎实例的属性值setProperty(name : string)name有这些枚举值“rate, vioce,vioces,volumn→ object设置当前引擎实例的属性值say(text : unicode, name : string)text:要进行朗读的文本数据; name: 关联发音人,一般用不到→ 预设要朗读的文本数据,这也是“万事俱备,只欠东风”中的“万事俱备”runAndWait()→ 这个方法就是“东风”了。当事件队列中事件全部清空的时候返回startLoop([useDriverLoop : bool])useDriverLoop:是否启用驱动循环→ 开启事件队列更多测试
朗读文本
事件监听
打断发音
更换发音人声音
语速控制
音量控制
执行一个事件驱动循环
使用一个外部的驱动循环
相关资讯
最新热门应用
ceex创享交易所最新版本
其它软件11.7MB
下载深币交易所苹果app
其它软件223.89MB
下载bingbon交易所app
其它软件28.56MB
下载币为交易所官方
其它软件67.70MB
下载满币交易所appios
其它软件80.40MB
下载vb global交易所
其它软件164.41M
下载中币交易所官方app
其它软件288.1 MB
下载aofex交易所app
其它软件121.52M
下载osl交易所app
其它软件69.42MB
下载币客盈交易所官网
其它软件292.97MB
下载