人工智能时代的带来,人们的生活方式也开始发生改变,各种智能设备接入千家万户,智能家居、物联网(IOT)。实现智能设备自然就少不了友好的人机交互方式,语音控制和语音合成应该是目前最友好的人机交互方式。Raspblock全向智能小车具备一定的图像处理能力,当然也少不了语音交互的功能。我觉得大家可能比较关心语音识别和语音合成能够做什么有趣好玩的功能。我在这里简单的介绍两个有趣且有学习意义的开源项目:
语音识别接入图灵机器人实现聊天机器人通过图灵机器人开放平台,用户可快速构建自己的专属聊天机器人并为其添加丰富的机器人云端技能。
结合语音识别和语音合成技术搭建属于自己的智能音箱,可实现智能唤醒,智能 点歌,智能推送天气的功能,想想都很丰富。
可参考项目:叮当:一个开源的树莓派中文智能音箱项目
那么我们来切入本节的正题:语音合成。语音合成的技术相对语音识别说来要成熟一些,并已开始向产业化方向成功迈进,大规模应用指日可待。它又被称为文语转换(Text to Speech)技术,能将任意文字信息实时转化为标准流畅的语音朗读出来,相当于给机器装上了人工嘴巴。语音合成(TTS)技术,是将文本或者控制指令进行合成并输出 语音的技术,实现人机交互的重要方法,其包含语言处理,语言理解,声学处理等三部分内 容,难点是自然语言处理,尤其对博大精深的中文语音更加难以理解。笔者认为,作为一个创客,我们应该学会利用开源的工具,借助免费语音识别和语音合成引擎搭建属于自己的语音交互系统。下面主要讲解如何利用百度云语音 SDK 进行语音识别和语音合成的开发。
准备工作:拓展版上搭载了3.5mm耳机座和可以搭载喇叭的xh2p插头座,用aux双头3.5音频线连接拓展板和树莓派,将喇叭正确的插入拓展板2pin插头座。
我们的目标是使用树莓派进行语音的合成和播报。连接完成后,我们可以先行对硬件功能进行测试,在终端输入:
aplay /usr/share/sounds/alsa/*
可以播报该文件的所有内容。
尝试aplay命令
如果没有声音,查看audio的驱动是否已经开启,终端输入:
sudo raspi-config
依次选择“Advanced Options”->”Audio”->”1 Force 3.5mm (‘headphone’) jack”
step1: Advance Option step2: Audio
step3: Force 3.5mm (‘headphone’) jack
工欲善其事必先利其器,下面先来武装一下自己,申请属于自己的百度 AI 开发者账号, 安装 SDK(Software Development Kit,软件开发工具包)。
在树莓派上,浏览器访问:http://ai.baidu.com/tech/speech,点击左上角控制台
百度云控制台
进入登录页面,没有百度云帐号的同学需要先完成注册。 完成登录后,百度可能会要求用户填写一个表单。
填写申请表单
提交之后,进入百度云产品总览,找到“百度语音”并进入
找到百度语音
可以看到当前我们的应用数量是0,点击“创建应用”
创建应用
我们创建一个应用,应用的名称实际不重要,类型可以填“学习办公”
填写创建应用表单
完成创建后,返回之前的“百度语音”界面,可以看到应用已经生成了,同时生成了一个appID, 和两个key值,这三个生成的key将会在之后的开发中被使用。
图 1-1 完成添加
下一步我们需要下载百度语音的python-SDK。浏览器进入https://ai.baidu.com/sdk#asr,或者在页面上找到“SDK下载”按钮。因为我们本套件的软件开发语言是python,所以我们找到并下载python-SDK。再次提醒,上述操作都是在树莓派上打开浏览器完成的。
图 1-2 下载python-SDK 01
需要下载的软件包不大,将得到的软件包放到/home/pi下,终端输入:
unzip aip-python-sdk-2.0.0.zip
进行解压,解压完成后,会在当前目录下自动生成名为“aip”的文件夹,然后apt-get下载软件包
sudo pip install baidu-aip
下载baidu-aip
现在,我们就可以在树莓派上进行语音识别和语音合成的项目了。同学们在学习过程中一定要主动阅读和理解百度语音对应的技术文档。目前像这样一套生成密钥然后下载SDK或使用在线API的开发流程其实非常流行,很多公司都有相应的产品,例如百度的人工智能,Google的地图API,PWM等等。
首先进行测试,可以在spyder的console中输入from aip import AipSpeech,或者在JupyterLab里输入然后执行,如果没有报错则证明下载成功。
检测是否成功安装
我们分别进行一个语音识别和一个语音合成的简单程序对百度语音进行简单的学习。也就是说,我们需要两套开发者工具,在浏览器上按前文的方式再生成一个应用。
图 1-3 再生成一个新的应用