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

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

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

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

实现语音操控的原理

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

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

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

什么是SAPI?

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

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

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

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

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

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

Speech.py    http://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”时,就会自动关闭识别系统。
如果你通过测试无误的话,我们就可以开始进行扩展开发了。

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("http://douban.fm/")
    elifphrase ==blog:
        speech.say("即将进入Dreamforce.me")
        webbrowser.open_new("http://dreamforce.me/")
    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)

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

(0)

相关推荐

  • Python如何实现文本转语音

    准备 我测试使用的Python版本为2.7.10,如果你的版本是Python3.5的话,这里就不太适合了. 使用Speech API 原理 我们的想法是借助微软的语音接口,所以我们肯定是要进行调用 相关的接口.所以我们需要安装pywin32来帮助我们完成这一个底层的交互. 示例代码 import win32com.client speaker = win32com.client.Dispatch("SAPI.SpVoice") speaker.Speak("Hello, it

  • 使用科大讯飞语音SDK实现文字在线合成语音

    最近需要使用到语音播报的功能,在百度七武器百度语音和科大讯飞的语音当中考虑到准确性和专业性,选择了科大讯飞.科大讯飞所提供的android开发sdk有两种一种是集成了自身产品语音+的sdk,功能比较强大但是会初始化语音服务模块:另一种是纯开发sdk不集成产品只需要导入相应jar包就可以使用.考虑到只用到了语音合成的技术所以选择了第二种sdk. 具体代码如下所示: private SpeechSynthesizer mTts; private int isSpeaking = 0; mTts= S

  • python在命令行下使用google翻译(带语音)

    说明 1. 使用google翻译服务获得翻译和语音;2. 使用mplayer播放获得的声音文件,因此,如果要播放语音,请确保PATH中能够找到mplayer程序,如果没有mplayer,请将use_tts设置为False运行.即:main(use_tts=False)3. 退出程序,输入"x",回车. 复制代码 代码如下: #! /usr/bin/env python#coding=utf-8 import requests def translate(words):    impor

  • python中的字典详细介绍

    一.什么是字典? 字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型. 字典类型与序列类型的区别: 1.存取和访问数据的方式不同. 2.序列类型只用数字类型的键(从序列的开始按数值顺序索引): 3.映射类型可以用其他对象类型作键(如:数字.字符串.元祖,一般用字符串作键),和序列类型的键不同,映射类型的

  • python实现将文本转换成语音的方法

    本文实例讲述了python将文本转换成语音的方法.分享给大家供大家参考.具体实现方法如下: # Text To Speech using SAPI (Windows) and Python module pyTTS by Peter Parente # download installer file pyTTS-3.0.win32-py2.4.exe # from: http://sourceforge.net/projects/uncassist # also needs: http://ww

  • Python入门教程 超详细1小时学会Python

    为什么使用Python    假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168.0.200. 思路:用shell编程.(Linux通常是bash而Windows是批处理脚本).例如,在Windows上用ping ip 的命令依次测试各个机器并得到控制台输出.由于ping通的时候控制台文本通常是"Reply from ... " 而不通的时候文本是"time out ... " ,所以,在结果中进行

  • python 中文乱码问题深入分析

    在本文中,以'哈'来解释作示例解释所有的问题,"哈"的各种编码如下: 1. UNICODE (UTF8-16),C854: 2. UTF-8,E59388: 3. GBK,B9FE. 一.python中的str和unicode 一直以来,python中的中文编码就是一个极为头大的问题,经常抛出编码转换的异常,python中的str和unicode到底是一个什么东西呢? 在python中提到unicode,一般指的是unicode对象,例如'哈哈'的unicode对象为 u'\u54c8

  • Python 字符串操作方法大全

    1.去空格及特殊符号 复制代码 代码如下: s.strip().lstrip().rstrip(',') 2.复制字符串 复制代码 代码如下: #strcpy(sStr1,sStr2)sStr1 = 'strcpy'sStr2 = sStr1sStr1 = 'strcpy2'print sStr2 3.连接字符串 复制代码 代码如下: #strcat(sStr1,sStr2)sStr1 = 'strcat'sStr2 = 'append'sStr1 += sStr2print sStr1 4.查

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

    电脑面前的你,是否也希望能让电脑听命于你?   当你累的时候,只需说一声"我累了",电脑就会放着优雅的轻音乐来让你放松. 或许你希望你在百忙之中,能让电脑郎读最新的NBA比分赛况-.一切都是那么惬意. 在此告诉你,不要灰心,我们真的可以做一个.做一个语音识别? 我相信很多人到这里会有两个心态,一是好奇,二是避之千里. 其实不然,你可以不用懂太多的编程技能,你甚至也可以不用懂自然语言处理技术,这篇文章虽然实现了语音操控但是绝没有你们想象的那么复杂. 如果仅仅把语音识别作为一个实现了的接口

  • python使用itchat实现手机控制电脑

    本文实例为大家分享了python使用itchat实现手机控制电脑的具体代码,供大家参考,具体内容如下 1.准备材料 首先电脑上需要安装了python,安装了opencv更好(非必需) 如果安装了opencv的话,在opencv的python目录下找到cv2.pyd,将该文件放到python的库搜索路径就可以导入了 然后下载itchat:github 2.开始使用 下载了itchat后解压(建议先阅读该文件夹下的docs),然后在该文件夹下执行cmd命令来安装itchat库: python set

  • Python简单实现控制电脑的方法

    本文实例讲述了Python简单实现控制电脑的方法.分享给大家供大家参考,具体如下: 1.windows 下,CMD的一些命令: dir:列出当前的所有文件 time:打印当前的时间 tree:列出当前目录下的子结构 在cmd中进入了某种模式,退出可以尝试以下命令:q .exit().Ctrl+c.Ctrl+z 运行程序:在cmd里面直接输入程序名称.如:notepad.calc 按tab键可以补全名字 在一个文件夹下,想快速打开cmd: 按住shift键,在鼠标点击右键,可以看见命令. 想在cm

  • python实现控制电脑鼠标和键盘,登录QQ的方法示例

    本文实例讲述了python实现控制电脑鼠标和键盘,登录QQ的方法.分享给大家供大家参考,具体如下: import os from pynput.mouse import Button,Controller from pynput.keyboard import Key from pynput.keyboard import Controller as W from time import sleep mouse = Controller() keyboard = W() #点击右下角刷新桌面图标

  • Python使用itchat模块实现简单的微信控制电脑功能示例

    本文实例讲述了Python使用itchat模块实现简单的微信控制电脑功能.分享给大家供大家参考,具体如下: #!/usr/bin/python #coding=UTF-8 import requests, json import itchat import os,time,datetime from PIL import ImageGrab from itchat.content import * app_dir = r''#打开一个程序,填写exe文件的绝对路径 imgdir = r'E:\t

  • python编程控制Android手机操作技巧示例

    目录 你应该拥有的东西 安装 开始 轻敲 截图 高级点击 TemplateMatching 滑动 打电话给某人 从手机下载文件到电脑 手机录屏 打开手机 发送 Whatsapp 消息 几天前我在考虑使用 python 从 whatsapp 发送消息.和你们一样,我开始潜伏在互联网上寻找一些解决方案并找到了关于twilio. 一开始,是一个不错的解决方案,但它不是免费的,我必须购买一个 twilio 电话号码.此外,我无法在互联网上找到任何可用的 whatsapp API.所以我放弃了使用 twi

  • Python编程实现控制cmd命令行显示颜色的方法示例

    本文实例讲述了Python编程实现控制cmd命令行显示颜色的方法.分享给大家供大家参考,具体如下: 基于win7 + python3.4 运行效果: import ctypes import sys '''Windows CMD命令行颜色''' # 句柄号 STD_INPUT_HANDLE = -10 STD_OUTPUT_HANDLE= -11 STD_ERROR_HANDLE = -12 # 前景色 FOREGROUND_BLACK = 0x0 # 黑 FOREGROUND_BLUE = 0

  • python编程测试电脑开启最大线程数实例代码

    本文实例代码主要实现python编程测试电脑开启最大线程数,具体实现代码如下. #!/usr/bin/env python #coding=gbk import threading import time, random, sys class Counter: def __init__(self): self.lock = threading.Lock() self.value = 0 def increment(self): self.lock.acquire() self.value = v

  • 用Python实现控制电脑鼠标

    目录 一.序言 二.配置环境 二.鼠标控制 1.获取鼠标位置函数以及测试源码 2.控制鼠标左击/右击/双击函数以及测试源码 3.控制鼠标移动/拖动 4.控制鼠标滚轮滚动 总结 一.序言 使用python控制按键无疑非常重要的技能,特别是结合机器视觉更是能发挥出超强的实力! 二.配置环境 1.下载pyautogui包 pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple/ 注:如果有可能,可以在pycharm中进行以下P

  • 用Python实现局域网控制电脑

    程序分为两部分,一个是客户端也是被操控的端口,另一个是服务端就是用来操作被操控的端口 程序很简单,是通过局域网聊天系统改造而成,没有高级的GUI框架,只有简简单单的DOS窗口,这个仅供学习,当然也可以在你的第二台电脑里放入客户端,然后用服务端进行指令操作,也是很不错的. 客户端会自动获取你的 IPv4 地址,并显示出来,需要用客户端给出的IP地址去服务端进行连接.执行指令也很简单,用接收到的数据进行os.system()进行执行.想法多的也可以做一个鼠标定位数据传输,可达到鼠标控制电脑,想法很大

随机推荐