Google AIY Voice Ver1.0 开发指南之函数篇
Google AIY Voice Kit 是谷歌推出的一款基于树莓派(Raspberry Pi) 的 语音交互开发套件,所谓AIY ,就是 “Do-it-yourself artificial intelligence”,基于 Google AIY Voice Hat,你可以做出实现语音交互的一套系统,比如智能语音助手,机器人等等,谷歌官方提供了一套最基本的使用教程,这里将不再赘述,今天我将给大家展示,如何不依赖谷歌云服务,从零开始用python3 调用API 编写源代码搭建一个语音交互平台-“人工智障”,让我们开始吧。

Google AIY VoiceHat上提供了丰富的总线(I2c,SPI)以及硬件接口(舵机,LED)

本开发指南基于Google AIY Voice Ver1.0,使用Raspberry Pi 3B, OS采用 Raspbian aiyprojects-2018-04-13,要想成功搭建一个语音交互平台,首先要先从硬件原理说起,我们不妨把Google AIY VoiceHat 视为Raspberry Pi的外置声卡,通过麦克风板上的MEMS硅麦采集声音,树莓派对声音处理后,然后经由VoiceHat上的模数转换DA和放大电路,最终在扬声器播放出来。树莓派运行的操作系统是基于Linux Debian的Raspbian,所用的音频处理驱动是ALSA-Driver,我们所编写的Python代码就是要调用底层硬件的API,VoiceHat的驱动已经在官方系统中内置了,具体源码可以参见https://github.com/google/aiyprojects-raspbian
预先善其事,必先利其器,在正式编写代码之前,
先给大家介绍一下API Python模块的使用

Module:
aiy.audio #控制麦克风和扬声器的模块
aiy.voicehat #控制VoiceHat板载器件(比如按键,LED灯)的模块
RPi.GPIO #控制VoiceHat上GPIO的模块
函数说明
led = aiy.voicehat.get_led() #获得VoiceHat上LED的状态函数
led.set_state(aiy.voicehat.LED.ON) #LED点亮
led.set_state(aiy.voicehat.LED.OFF) #LED熄灭
led.set_state(aiy.voicehat.LED.BLINK) #LED闪烁
ui = aiy.voicehat.get_status_ui() #获得VoiceHat上LED的动画状态函数
ui.status("ready") #LED效果为常灭,建议准备就绪时使用
ui.status("listening") #LED效果为常亮,建议录音中使用
ui.status("thinking") # LED效果为呼吸灯,建议语音识别及处理中使用
button = aiy.voicehat.get_button() #获得VoiceHat上Button的状态函数
button.wait_for_press() #等待按键按下,按键释放后结束
aiy.audio.record_to_wave(temp_path, RECORD_DURATION_SECONDS) ##内置函数
aiy.audio.play_wave(wav file_path) #播放wave波形文件
aiy.audio.say(String) #谷歌英文TTS引擎,可离线实现英文语音合成,
ui.set_trigger_sound_wave(wav file_path) #播放出发wave波形文件,须在触发状态下使用

未来几期将为大家继续介绍“人工智障”的具体实现流程,我们将采用百度云的中文语音识别合成框架,同时用最简单的方式构建本地语料库,另外把唐诗,宋词等诗词集成进来,感谢大家的关注,下一期见