智能语音:好玩的语音控制是怎么实现的?学习笔记01

智能语音:好玩的语音控制是怎么实现的?学习笔记01


智能音箱的技术架构

智能音箱主要涉及拾音、前端信号处理、语音识别、自然语言处理语音合成等技术,现在一些产品甚至提供了声纹识别技术。
当然,智能音箱最重要的是提供各种功能,完成一些任务,比如控制电灯的开和关,这被称为技能
整体的技术架构如下图所示:在这里插入图片描述

拾音

通过麦克风获取你的语音。智能音箱上一般采用麦克风阵列(Mic Array),也就是按照一定规则排列的多个麦克风,比如Amazon Echo由 7 个麦克风组成的阵列(绿色圆圈部分)。在这里插入图片描述

前端语音信号处理

为了获取到相对干净的语音信号,提高后面的语音识别的准确率。相关技术如图。在这里插入图片描述

语音唤醒

语音唤醒(Keyword Spotting,KWS):就是通过特定的唤醒词来激活智能音箱,以便进行后续的语音交互任务。如”小爱同学“。

语音识别

语音识别(Automatic Speech Recognition,ASR):就是将语音转换成文本,也被称为 STT(Speech to Text)。

自然语言理解

自然语言理解(Natural Language Understanding,NLU):是对语音识别生成的文本进行处理,识别用户的意图,并生产结构化的数据。

技能

技能(Skills):一般要借助后端云平台的强大能力,云平台可以提供知识图谱、家居设备远程控制和音频资源等能力。

自然语言生成

自然语言生成(Natural Language Generation,NLG):是将各种技能的响应结果组织成文本语言。比如当你询问天气时,根据获取的天气状况和温度等信息生成“北京今天晴,最高温度 5°,最低温度 -6°”这样的语句。自然语言生成和自然语言理解都属于自然语言处理(Natural Language Processing,NLP)的范畴。

语音合成

语音合成(Speech Synthesis):就是将自然语言生成的文本转换为语音的形式,提供给智能音箱播放出来,给人的感觉就像和音箱在对话。这个过程也叫做 TTS(Text to Speech)。

智能音箱的开发

麦克风阵列

麦克风阵列我使用的是 ReSpeaker 2-Mics Pi HAT,它的 2 个麦克风分布在模组的两边。我们现在来配置一下,让它可以在树莓派上正常工作。
你可以通过下面的命令安装它的驱动程序。首先,你最好切换一下树莓派的软件安装源,将它切换到国内的腾讯云安装源,这样下载安装的速度比较快。运行下面的命令修改配置文件:

$ sudo vim /etc/apt/sources.list

将文件修改为下面的内容:

deb https://mirrors.cloud.tencent.com/raspbian/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb-src https://mirrors.cloud.tencent.com/raspbian/raspbian/ buster main contrib non-free rpi

修改另一个软件安装源的配置文件,命令如下所示:

$ sudo vim /etc/apt/sources.list.d/raspi.list 

修改后的文件内容如下:

deb https://mirrors.cloud.tencent.com/raspberrypi/ buster main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
deb-src https://mirrors.cloud.tencent.com/raspberrypi/ buster main

然后,你需要运行下面的命令更新安装源:

$ sudo apt-get clean all
$ sudo apt-get update

现在,你可以运行下面命令安装麦克风阵列的驱动程序。因为这个驱动依赖的 wm8960 编解码器没有包含在树莓派系统的内核里面,需要重新加载内核,编译驱动,所以整个过程比较久。在等待的过程中,你可以先阅读这一讲的其他部分。

$ sudo apt-get install git
$ git clone --depth=1 https://github.com/respeaker/seeed-voicecard
$ cd seeed-voicecard
$ sudo ./install.sh
$ sudo reboot

树莓派重启之后,你可以在树莓派终端输入下面的命令,查看音频的输入和输出设备是否正常工作。

$ arecord -l
$ aplay -l

在这里插入图片描述
如果一切正常,我们就可以测试录音和播放功能了。在 ReSpeaker 2-Mics Pi HAT 的耳机插口上插入耳机或者扬声器,运行下面的命令,并说几句话。

$ arecord -d 5 test.wav
$ aplay test.wav 

另外,你也可以通过软件 AlsaMixer(命令 alsamixer)来配置声音设置和调整音量,左、右箭头键用于选择通道或设备,向上、向下箭头控制当前所选设备的音量。退出程序使用 ALT + Q,或者按 Esc 键。
为了简化开发,也考虑到麦克风硬件的限制,我们这里就先不关注前端语音信号处理的相关开发了。接下来,我们直接来到实现语音唤醒的环节。

语音唤醒

为了实现语音唤醒,我们需要选择一个轻量级的、可以在树莓派上运行的唤醒词监测器软件。
我选择的是Mycroft Precise,它是一个基于 RNN 神经网络的语音唤醒工具。
接下来,我们在树莓派安装 Mycroft Precise。因为需要训练唤醒词模型,我们需要基于源代码来编译、安装。
首先,我们通过 git 命令把 Mycroft Precise 的源代码下载到树莓派的 /home/pi 目录:

$ cd ~
$ git clone https:/
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值