如何用python控制电脑说话?

Python016

如何用python控制电脑说话?,第1张

电脑面前的你,是否也希望能让电脑听命于你? 当你累的时候,只需说一声“我累了”,电脑就会放着优雅的轻音乐来让你放松。 或许你希望你在百忙之中,能让电脑郎读最新的NBA比分赛况….一切都是那么惬意。

在此告诉你,不要灰心,我们真的可以做一个。

做一个语音识别? 我相信很多人到这里会有两个心态,一是好奇,二是避之千里。

其实不然,你可以不用懂太多的编程技能,你甚至也可以不用懂自然语言处理技术,这篇文章虽然实现了语音操控但是绝没有你们想象的那么复杂。 如果仅仅把语音识别作为一个实现了的接口的话,剩下的逻辑就仅仅是IF-ELSE这些简单的元素了。

实现语音操控的原理

语音操控分为 语音识别和语音朗读两部分。

这两部分本来是需要自然语言处理技能相关知识以及一系列极其复杂的算法才能搞定,可是这篇文章将会跳过此处,如果你只是对算法和自然语言学感兴趣的话,就只有请您移步了,下面没有一个字会讲述到这些内容。

早在上世纪90年代的时候,IBM就推出了一款极为强大的语音识别系统-vio voice , 而其后相关产品层出不穷,不断的进化和演变着。 我们这里将会使用SAPI实现语音模块。

什么是SAPI?

SAPI是微软Speech API , 是微软公司推出的语音接口,而细心的人会发现从WINXP开始,系统上就已经有语音识别的功能了,可是用武之地相当之少,他并没有给出一些人性化的自定义方案,仅有的语音操控命令显得相当鸡胁。 那么这篇文章的任务就是利用SAPI进行个性化的语音识别。

准备阶段,你至少需要安装以下的工具:

Python2.7http://www.python.org/

强烈建诡使用2.7,至今Python2.7拥有Python系列为数最多的工具和应用支持,同时也相对比较稳定。

Win32Com http://starship.python.net/~skippy/win32/Downloads.html

Python Win32增强工具,可以使Python调用WIN32COM接口,这个工具的出现使得Python变得无比强大

Speech.pyhttp://pypi.python.org/pypi/speech/

这个是极为精简的封装模块,此处为可选项,当然我不建议重复造轮子,还是下吧,目前只支持Python2.6,但不用灰心,Python2.6和Python2.7的代码是兼容,不会有异常。

安装过程请依至上而下的顺序。

开发阶段

当你安装了上述的相关工具后,你就可以进行开发了:

先进行一个简单的环境调试:

复制代码 代码如下:

whileTrue:

phrase =speech.input()

speech.say("You said %s"%phrase)

ifphrase =="turn off":

break

上述代码是启动语音识别器,同时系统将会重复你所录入的语音,当遇到“turn off”时,就会自动关闭识别系统。

本功能实现逻辑如下:

主要使用Python的urllib.request库来调用https://nlp.xiaoi.com/上的接口,具体接口可以通过浏览器抓包获取,然后根据抓包信息进行url的构造,使用urllib.request库的urlopen函数来调用构造的url,将其返回进行编解码之后,使用re模块将所需信息匹配出来。

功能实现脚本如下:

因为工作养成的习惯,生怕写的脚本在别的环境跑出问题,索性将它编译成exe文件。

使用pyinstall库来实现py脚本到exe文件的编译过程。

(本文参考csdn上的一篇文章,路径如下:https://blog.csdn.net/jiahuiandxuehui/article/details/118193844,不过这里的运行后返回结果会有一些\r\n这种东西,这里我修改了一下正则表达式,把不重要的信息给过滤掉了。)

Python可以使用Twilio API来拨打电话,并提供一些自动回应的功能,例如语音转文字的自动回复服务。Twilio API还可以让Python应用程序直接拨打、接听和管理电话通话,以及播放语音信息、验证叫号码的来电、自动回复等功能。