利用树莓派制作智能音箱

制作智能音箱需要解决的问题,如下:

  1. 需要准备的器件(例如音箱、麦克风等)
  2. 代码实现问题(语音交互)
  1. 语音识别
  2. 语音唤醒功能
  3. 能够实现播放、暂停音乐(预先设好的音乐/链接网址播放在线)
  4. 讲故事、讲笑话(预先设好的故事和笑话/链接网址播放在线)
  5. 报天气(温湿度传感器设置范围对应天气/链接到对应网址汇报)
  6. 简单的对话:对应的问好+需要我为你做些什么吗?
  1. 实现技术:Python+百度接口

制作过程及调试阶段

  1. 完成百度接口注册及资源领取
  2. 语音合成的技术实现
  3. 根据百度智能云的步骤,在Python中一步步实现。

遇到的问题及解决方式:

在复制代码中,发现版本不兼容导致运行出现问题,我们所安装的python3.0版本无法找到urllib2(这是python2.7版本的用法),通过咨询老师和查阅百度了解到这个问题的来源,并通过删除兼容部分的代码解决了这一问题,实现了语音合成技术。

利用树莓派制作智能音箱_第1张图片

安装使用Python SDK有如下方式:

可在官网下载最新版本。

如果已安装pip,执行pip install baidu-aip即可,如果需要使用HTTP2,请安装pip install baidu-aip-http2。

如果已安装setuptools,执行python setup.py install即可。

  1. 语音识别的技术实现

根据百度智能云的步骤,在Python中一步步实现短语音的识别。

问题:如何实现实时语音识别

利用百度智能云开发的技术文档,安装基础调用软件。

实时语音识别接口采用websocket协议的连接方式,边上传音频边获取识别结果。可以将音频流实时识别为文字,也可以上传音频文件进行识别;返回结果包含每句话的开始和结束时间,适用于长句语音输入、音视频字幕、直播质检、会议记录等场景。

接入步骤:

1.创建账号

2.进行接口调用:实时语音识别支持websocket协议,API方式调用。

支持中文普通话、音视频直播(中文)场景识别;支持英文识别。

音频格式

目前只支持pcm格式的原始音频数据, 16000采样率, 单声道,16bits,小端序。 目前api限制一次音频时长不超过1小时。

音频内容为:清晰的真人发音,无背景音或其它噪音,日常用语。

录音环境

百度语音识别要求安静的环境,真人的正常语速的日常用语,并且不能多个人同时发音。

以下场景讲会导致识别效果变差,错误,甚至没有结果:

  1. 吵杂的环境
  2. 有背景音乐,包括扬声器在播放百度合成的语音。
  3. 离麦克风较远的场景应该选择远场语音识别。

以下场景的录音可能没有正确的识别结果:

  1. 音频里有技术专业名称或者用语
  2. 音频里是某个专业领域的对话,非日常用语。比如专业会议,动画片等

restapi http协议: 0.0s--> 开始发起请求-->0.3s 发送完整录音文件到百度服务器 --> 3.0s: 接收返回结果

程序编写:

利用树莓派制作智能音箱_第2张图片

利用树莓派制作智能音箱_第3张图片

  1. 人机对话的实现

1. 新建机器人

  在【我的机器人】页面,点击【创建我的机器人】,新建一个机器人。

  创建完成之后,在技能管理页面添加技能到机器人中。

2. 添加技能到机器人中

a. 获取预置技能

  点击【添加技能】页面,进入我的技能页面,点击【添加预置技能】,获取技能。

b. 获取闲聊技能

  找到闲聊之后,点击【获取该技能】,跳转到我的闲聊页面,创建闲聊技能。

c. 将技能添加到机器人中

  获取完技能后,回到刚刚创建的机器人中,点击【添加技能】,即可看到刚刚获取的两个预置技能,选中并添加到机器人中。

3. 对话流程控制

  在机器人设置中使用回复优先级功能,可以控制各技能的回复优先级,数字越低,优先级越高。当用户与机器人对话时,会优先使用优先级更高的技能结果回复用户。平台默认使用优先级最高的技能结果,其他技能结果可测试窗口的json中看到。

4. 对话测试并部署

  点击【对话】即可进行对话测试

利用树莓派制作智能音箱_第4张图片

测试完成后,点击【发布上线】即可接入业务系统。

程序编写:

利用树莓派制作智能音箱_第5张图片

ID是你自己的机器人代号。

然后导入树莓派。

给树莓派连上喇叭和麦克风,即可完成树莓派智能音箱的制作。
 

你可能感兴趣的:(语音识别,人工智能)