用Python编程实现语音控制电脑,tensorflow语音识别

来源:未知 浏览 103次 时间 2021-06-10 19:32

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

在此告诉你不要灰心我们真的可以做一个。
做一个语音识别? 我相信很多人到这里会有两个心态一是好奇二是避之千里。

用Python编程实现语音控制电脑


实现语音操控的原理

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

用Python编程实现语音控制电脑

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

什么是SAPI?

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

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

Python2.7

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

Win32Com ~skippy/win32/Downloads.html


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

Speech.py

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

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

开发阶段

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

先进行一个简单的环境调试:
代码如下:
whileTrue:
phrase =speech.input()
speech.say(“You said %s”%phrase)
ifphrase ==”turn off”:
break


上述代码是启动语音识别器同时系统将会重复你所录入的语音当遇到“turn off”时就会自动关闭识别系统。
如果你通过测试无误的话我们就可以开始进行扩展开发了。

1. 定义中文语义库
代码如下:closeMainSystem =”关闭人机交互”
openEclipse =”我要写程序”
listenMusic =”我好累啊”
blog =”看博客”
php =”php”
java =”JAVA”


2. 定义相关语义操作逻辑
代码如下:defcallback(phrase, listener):
print(“: %s”%phrase)
ifphrase ==closeMainSystem:
speech.say(“Goodbye. 人机交互即将关闭谢谢使用”)
listener.stoplistening()
sys.exit()
elifphrase ==openEclipse:
speech.say(“请问您要写PYTHON还是JAVA程序?”)
speech.listenforanything(callback)
elifphrase ==listenMusic:
speech.say(“即将为你启动豆瓣电台”)
webbrowser.open_new(“”)
elifphrase ==blog:
speech.say(“即将进入Dreamforce.me”)
webbrowser.open_new(“”)
elifphrase ==php:
speech.say(“启动PHP编写器”)
os.popen(“E:\IDE\php_eclipse\eclipse\eclipse.exe”)
elifphrase ==php:
speech.say(“启动JAVA编写器”)
os.popen(“E:\IDE\php_eclipse\eclipse\eclipse.exe”)


其中os.popen是异步开启程序此操作不会单独开启一个SHELL窗口也不会阻塞当前进程。
speech.say() 是调用SAPI进行参数朗读。
webbrowser.open_new()是打开网页。

3.程序运行主体搭建
代码如下:listener =speech.listenforanything(callback)
whilelistener.islistening():
text =input()
iftext ==”不要语音了”:
listener.stoplistening()
sys.exit()
else:
speech.say(text)

此段为运行主体大意是开启语音监听同时支持终端输入模式。如果你嗓子哑了的话也可以打字来实现哈哈~~

标签: 识别实现语音