那要先知道什么是麦克风阵列(Microphone array),学术上有个概念是“传声器阵列”,主要由一定数目的声学传感器组成,用来对声场的空间特性进行采样并处理的系统。
通俗的讲,就是麦克风阵列是由多个单麦克风按一定顺序排列的。你可以理解为一堆麦克风。我们常见的话筒(比如苹果手机话筒就是单麦克风的)。麦克风阵列一般来说有线形、环形和球形的,严谨的应该说成一字、十字、平面、螺旋、球形及无规则阵列等。至于麦克风阵列的阵元数量,也就是麦克风数量,可以从2个到上千个不等。它们通过特定的排列(阵法),可以对声音接收有更好的效果。
语音交互应用最为普遍的就是以Siri为代表的智能手机,这个场景一般都是采用单麦克风系统。单麦克风系统可以在低噪声、无混响、距离声源很近的情况下获得符合语音识别需求的声音信号。但是,若声源距离麦克风距离较远,并且真实环境存在大量的噪声、多径反射和混响,导致拾取信号的质量下降,这会严重影响语音识别率。而且,单麦克风接收的信号,是由多个声源和环境噪声叠加的,很难实现各个声源的分离。
麦克风阵列由一组按一定几何结构(常用线形、环形)摆放的麦克风组成,对采集的不同空间方向的声音信号进行空时处理,实现噪声抑制、混响去除、人声干扰抑制、声源测向、声源跟踪、阵列增益等功能,进而提高语音信号处理质量,以提高真实环境下的语音识别率。
亚马逊Echo一样直接选用4麦以上的麦克风阵列。机器人一般4个麦克风就够了,音箱建议还是选用6个以上麦克风,至于汽车领域,最好是选用其他结构形式的麦克风阵列,比如分布式阵列。
麦克风越多成本越高,所以我们选择4阵列的。
基于Raspberry Pi的ReSpeaker 4-Mic阵列是一款适用于AI和语音应用的Raspberry Pi的四通道麦克风扩展板。 这意味着可以借助它构建一个集成Amazon Alexa语音服务,Google助手等,功能更强大,更灵活的语音产品。
区别于 , 该板是基于AC108开发的,这是一款高度集成四通道ADC,具有用于高清晰度语音捕获,I2S / TDM输出,拾取3米半径的声音的语音设备。 此外,这款4-Mics版本提供了超酷LED环,其中包含12个APA102可编程LED。 就像Amazon Echo或 Google assist一样, 使用4个麦克风和LED环,Raspberry
Pi具有VAD(语音活动检测),DOA(到达方向),KWS(关键字搜索),并通过LED环显示方向灯功能。
麦克风的淘宝链接()我买的这家的。
树莓派系统用的最新的系统:
树莓派系统安装步骤请参考()
我会把最好的安装方法用手把手小白级别记录在下面。你要跟我一步一步来,肯定没毛病。
我把安装中遇到的坑还有解决方法记录在第七步中了。纪念一下我花了N天的安装心路历程。感兴趣的可以看一下。
继续换源:(这一步别忘啊。。。忘了的话,装pyaudio的时候,会出问题,别问我是怎么知道了,重装系统30次的男人)
假如需要使用mic-array
作为音频输出口的话则如下图进行设置
我们可以跟他对话, 比如问,"谁是最帅的?" 或者 "播放刘德华的男人哭吧哭吧不是罪"。小伙伴,尽情的 High 起来吧。
第五步,怎样用Snowboy自定义唤醒词?
(这步从开始用不了Snowboy网站了,他们家关闭服务器了,你可以去Github上下载别人训练的关键词,拿来用: )
去这个Snowboy官网()点击创建新的关键词
然后打开树莓派,把这个文件保存自你想保存的路径下。我的是“/home/pi/NBoy”。
然后找到“demo.py”文件。这个文件不同的人安装路径可能不同,但是文件名肯定没错,毕竟是Snowboy大佬写的。我的安装路径在“/home/pi/NBoy”下。
用文本编辑器/sudo nano打开“demo.py”文件,找到如下所示命令:
把它注释掉,并用如下代码替换(实际上就是把唤醒词的调取路径换了)
如果你的唤醒词文件名叫别的什么,你也可以改。库路径随便放哪,你让kws调用的时候找的到就行。
回到树莓派的命令窗口。
等见到命令窗口显示“204”,“On ready”的时候,就可以对麦克风说"大白(●—●)"了。你也成了吧,点个赞吧~
第六步,如何更改代码添加GPIO输出(LED灯定义)
第七步,安装中遇到的问题,归纳总结。
Q1: 内置算法的参数(高级玩家以后用得到)
100% |████████████████████████████████| 61kB 101kB/s
Q3: 有没有树莓派的Alexa的样例? Alexa是在线语音识别系统
Q5: 能直接通过3.5mm耳机孔听到采样的声音吗?
A5: 不行的。3.5mm耳机孔音源来自于上位机,但是如果用树莓派的话可以通过执行
Q7:在我打开Snowboy中的example中的C文件下的例程使,提示打不开。
网上有些菜鸡们瞎唧唧不负责的教你,导致本应该安装python2的库,安装成了python3(pip3开头的命令都是错的)。那Snowboy的声音引擎(voice engine)肯定识别不了啊。
如下图所示的红框圈起来的安装命令都是错的:
下图所示的样子才是正确的:(源自我上文第四步中内容)你看有python3(pip3)吗?
哎,天下文章一大抄啊,抄来抄去都是米,预知此事要躬行 。
Q10:HDMI连接电脑显示屏,再录音播放的时候听不到声音怎么办?
A10:如果你们遇到HDMI连接电脑显示屏,完事树莓派再外接音箱(想靠它发声),然后录音没问题,播放的时候没声音这样的情况。大多数是声卡设置的时候没设置好。被系统默认成音频走HDMI,即电脑显示屏发声了。这时候要么把外接的音箱接到显示屏上去,要么就认真阅读理解我的“第二步”,把CARD值改成树莓派音频输出。然后就可以了。
Q11: 我未来,还有问题怎么办?
A11:欢迎在评论区留言。
看完不点赞,学分少一半~