树莓派系列二(语音识别)

树莓派的基本概念和安装系统在系列文章一中介绍了.这篇准备介绍一下语音识别.

一直想研究一下语音识别,用来做家庭物联网的控制入口,未来也许就是这样,讯飞的叮咚音响可以连接京东的物联平台,苹果的homekit平台,华为的平台暂时落后的有点多...

国内语音识别领域,我个人比较欣赏讯飞.识别效果业界领先,这几年百度语音识别也在追赶,这次的研究让我对百度的语音识别效果刮目相看,Google的在国内不用想了...

言归正传

1讯飞语音识别接口.

这次在树莓派上实现语音识别控制家里的设备(插座,灯 等等)的研究,第一反应是找讯飞的解决方案,结果讯飞收回的arm平台开放的sdk,需要申请,有网友放出之前开放出来的sdk库,但是仍然收每天识别次数的限制.反感搞这些事情(申请需要在论坛里贴上研究过程,一个有效评论+1,申请后,三个星期发一次...),转而研究一下百度的语音识别接口.这里贴上网友的链接,里面有早期讯飞开放的sdk下载链接,有兴趣的可以去下载.

http://blog.csdn.net/yanghuan313/article/details/50992909


2百度语音识别接口.

百度语音开放平台号称永久免费,开发需要去注册账号,在平台上创建应用,这里不详细叙述了,平台操作比较简单,可以参考下面的链接(不用下载sdk什么的,这里使用语音识别 REST API ,只需要拿到API KEY、Secret KEY.)

http://www.tuicool.com/articles/z2m6V3v

平台支持android, ios.我们这里使用的是语音识别 REST API接口,也就是http传输识别.

使用python开发,在ubuntu上先尝试一下效果

需要安装pycurl

sudo apt-get install libcurl4-gnutls-dev

pip install pycurl

安装好后,下面是python的代码:

#encoding=utf-8import wave
import urllib, urllib2, pycurl
import base64
import json
## get access token by api key & secret keydef get_token():apiKey = "*******"secretKey = "***************"auth_url = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + apiKey + "&client_secret=" + secretKeyres = urllib2.urlopen(auth_url)json_data = res.read()return json.loads(json_data)['access_token']def dump_res(buf):print buf## post audio to server
def use_cloud(token):#  fp = wave.open('test.pcm', 'rb')fp = wave.open('cn_word.wav', 'rb')#  fp = wave.open('vad_1.wav', 'rb')nf = fp.getnframes()f_len = nf * 2audio_data = fp.readframes(nf)#mac addrcuid = "123456"srv_url = 'http://vop.baidu.com/server_api' + '?cuid=' + cuid + '&token=' + tokenhttp_header = ['Content-Type: audio/pcm; rate=16000',#  'Content-Type: audio/pcm; rate=8000','Content-Length: %d' % f_len]c = pycurl.Curl()c.setopt(pycurl.URL, str(srv_url)) #curl doesn't support unicode#c.setopt(c.RETURNTRANSFER, 1)c.setopt(c.HTTPHEADER, http_header)   #must be list, not dictc.setopt(c.POST, 1)c.setopt(c.CONNECTTIMEOUT, 30)c.setopt(c.TIMEOUT, 30)c.setopt(c.WRITEFUNCTION, dump_res)c.setopt(c.POSTFIELDS, audio_data)c.setopt(c.POSTFIELDSIZE, f_len)c.perform() #pycurl.perform() has no return valif __name__ == "__main__":token = get_token()use_cloud(token)

识别结果如下:


这里使用的是讯飞sdk中的wav文件,所以代码中rate=16000.大家根据自己的音频数据去修改.识别结果完全正确,可见音频文件效果可以的话,百度语音识别接口完全可以用,不需要讯飞sdk.

这里插一下题外的话,因为考虑语音文件效果的问题,自然考虑到了麦克风硬件的优劣,这里又再次提到讯飞,讯飞出了六麦环形阵列的麦克风阵列,链接:http://www.xfyun.cn/services/mic#list_wrap

不得不说,虽然没有使用,但是我相信效果,只是好贵.......不考虑成本的可以试试.


说一下我最后选择的方案,语音识别效果可以的情况下,要考虑唤醒的问题,唤醒方案有很多,上讯飞麦克风阵列的可以用唤醒词,可以增加声音传感器,某宝上也就几块钱,但是声音传感器的阀值是我比较担心的,我并不想语音识别被莫名的声音唤醒,因为这种传感器只能检测声音的有无.大家根据自己的需求去增加特定的传感器去唤醒语音识别就好.对于我来说,考虑到家里有小米网关,插座等大量的小米设备,使用了树莓派nodejs homebridge插件(虚拟出一个HomeKit网关),这样就可以对接到苹果手机的家庭应用,用苹果的siri控制了.当然以后还是想上自己的语音识别的.

先把关系整理一下:

  1. nodejs是一个命令行下的javascript运行环境。
  2. npm是nodejs的插件社区,里面有无数的好东西和不好的东西,因为是不需要审核的。
  3. homebridge是npm社区上的插件之一,可以虚拟出一个HomeKit网关出来,但并不负责任何设备的适配。
  4. 其它设备要想使用homebridge和HomeKit互通,就要写一个homebridge的插件,现在这种插件也有上百个了
  5. 做homebridge-aquara,Aquara是做小米多功能网关的深圳绿米联创的自有品牌,最近出的墙壁开关和空调伴侣都是这个品牌的

最后具体的步骤参见小米bbs

http://bbs.xiaomi.cn/t-13198850


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1381878.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

毕业设计 基于单片机的智能音响设计与实现 -物联网 嵌入式 stm32

文章目录 0 前言1 简介2 主要器件3 实现效果4 设计原理4.1 PAJ7620U2模块4.2 HC-05蓝牙模块4.3 JQ8900语音模块 5 部分核心代码6 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到…

两台电脑共享一个音响方法

两台电脑共享一个音响方法 由于某种原因,需要两个电脑使用同一个扬声器,现分享一种简单的方案 原理:通过主机的音频输入功能,将另一台电脑的音频接收过来并播放。 连线如下: PC2作为主设备,正常连接音响…

Spring IOC DI - 整合MyBatis

Spring IOC目录 主要内容Spring 框架介绍Spring 框架的优势(对比以前项目的缺点)Spring 框架引入历史发展框架学习三要素Spring 模块介绍 Spring IoC/DI - 引入IoC/DI 概念辨析使用IoC/DI的好处IoC/DI具体应用场景 Spring IoC/DI - 代码实现环境准备Spring 框架环境搭建创建Mav…

Spring框架——IOC、DI

本篇博客主要介绍Java中的IOC和DI,以及在String框架中的应用。首先,我们将对IOC和DI进行概念介绍,然后讲解它们的关系及在String框架中的应用,最后通过一个实例来展示它们的具体用法。 IOC和DI的概念介绍 IOC(Invers…

叮咚!你点的Spring套餐来了!

儒猿技术团队最新出品: 《Spring顶尖高手进阶:互联网教育系统项目实战》 长按扫描下方二维码了解: 课程背景 在技术日新月异的今天,Spring作为Java主流开发框架,出道十多年仍然稳坐C位,经久不衰&#xff0c…

乐鑫Esp32学习之旅 17 全网首发,esp32 sdk直连京东微联·小京鱼·IoT开放平台,实现叮咚音响语音智能控制。

本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。 1、 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 “Hellow World”。…

计时器setTimeout()函数、setInterval()函数

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:🏅计时器setTimeout(函数名,延迟时间)结束计时器setTimeout 🏅计时器setInterval(函数名,延迟时间&a…

UGUI源码深度剖析

源码下载后 直接嵌入工程,删除引擎extension里的; 自制UI,在一个空场景中显示一个图片,当鼠标点击图片,执行操作。 gameobject : mesh meshfilter meshrender maintexture meshcollider camera ray

三星Note2 行货 水货 型号版本

来源:http://samsung.tgbus.com/201301/462040.shtml 三星Galaxy Note早期的用户定位,其实是喜欢大屏幕的商务男士,但是发售之后没想到,在市场中女性成为三星Galaxy Note的最大的购买群体。而比三星Galaxy Note屏幕更大的Galaxy N…

你的服务器安全吗?--服务器防渗透

1、概述 在本人所处的公司的服务器正式遭到黑客攻击之前,一直都以为 黑客 是个遥不可及的词,直到真正成为了受害者时,才猛然意识到安全的重要性。有一些基本经验和心得总结出来,和同行分享一下吧。 2、暴破手段 最粗暴的黑客行为…

数据通信——网络层(ACL)

引言 在网络中会区分三个区域:(Trust)内网,(UnTrust)外网,(DM2)非军事化区域 防火墙在网络中可以阻止DM2对Trust的访问。同理,从Trust到UnTrust或者UnTrust到…

微信小程序_23,分包

什么是分包: 分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时,打包成不同的分包,用户在使用时按需进行加载 分包的好处: 可以优化小程序首次启动的下载时间在多团队共同开发时可以更好的解耦协作 分包前后项目的构成: 分包后小程序项目由1个主…

最新版南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端

南风表情包小程序独立版源码 独家最火表情包小程序源码完整后台API小程序前端 南风表情包小程序源码,独家分享网传最火表情包小程序源码,带有独立版完整后台 API、小程序前端,并附带安装搭建说明。最近很火的表情包小程序源码,站…

还不错的新版南风表情包小程序源码+有搭建文档

正文: 还不错的新版南风表情包小程序源码有搭建文档,虽然这是一个表情包小程序,但是功能却不止这么单一的。 搭建教程: 1.需要一个域名且是国内的才行2.注册小程序这个就不用多说了3.一台服务器4.后台环境Nginx 1.18.0PHP-7.2mysql5.6 开启ssl php需要…

小程序源码:朋友圈发圈助手文案,头像,壁纸组合微信小程序源码下载-多玩法安装简单

这是一款为信朋友圈助手的一款小程序源码 内包含了朋友圈文案,壁纸,头像等等 每一个都包含了多个大分类 比如发捐助手有正能量,节假日祝福,搞笑段子等等 壁纸和头像自然也会有不同的分类,具体大家可以看演示图! 小程序源码下载地址:小程序源码:朋友圈…

寄快递邮寄发件上门邮寄小程序源码+前端+后端+安装说明

新快递小程序快递代发快递代寄寄件小程序可以对接易达云洋一级总代 快递小程序,接入云洋/易达物流接口,支持选择快递公司,三通一达,极兔,德邦等,功能成熟 如何收益: 1.对接第三方平台成本大约4元左右一单…

最近很火的微信红包封面小程序源码免费分享了!

此小程序适合流量主引流,赚广告费,适合广流量主,适合流量主,适合流量主懂。所以懂的都懂,不要问我封面去哪里整。 小程序里插入banner广告,插屏广告,视频广告,激励式广告。邀请好友…

【微信小程序】分包

基础概念 1.1、什么是分包 分包指的是把一个完整的小程序项目,按照需求划分为不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。 1.2、分包的好处 对小程序进行分包的好处主要有以下两点: 可以优化小程序首次启…

表白套路表情包制作生成微信小程序源码下载安装简单支持多流量主

趁着空闲时间就给大家随便发一个吧,等小编忙完再好好整理资源分享给大家 这是一款表白套路表情包制作小程序源码 安装简单新手小白都会特别的简单 多种模板制作,输入一键生成 另外也支持多种流量主模式 链接 网盘源码.zip - 蓝奏云 背景 表白套路表情包是一款非常有趣和实…