树莓派搭建智能音箱

前言

最近准备做小车的语音控制,经过多种方案选择,最终决定采用智能音箱+MQTT的形式。MQTT的内容我们以后有机会再说,这篇主要记录一下智能音箱的搭建。

准备工作

硬件

  • 树莓派4b(3b+也可以)
  • respeaker 4麦克风(2麦克风的也行,但相对的捕捉声音范围也小了)
  • usb+3.5mm耳机孔的音箱

讲respeaker麦克风插入树莓派的引脚,插上音箱耳机孔以及usb供电口,给树莓派供电(5V3A),这样硬件方面就搭好了。

软件

  • wukong robot,开源地址:这是一个比较优秀的智能音箱项目,具体请看官方文档。
  • xshell,一款ssh远程登录软件,包括配套的xftp和xmanage,去官网下载,其中xshell和xftp可以免费使用。
  • 树莓派系统烧录工具,链接:提取码:2580

安装

树莓派系统安装

新树莓派需要准备一张tf卡(推荐16G)烧入系统,系统可以去树莓派官网下载,最新的就行,有桌面版和lite版,推荐lite版,命令行不帅吗???下好系统镜像后,将tf卡插入读卡器,最好在烧录系统之前用tf卡修复工具初始化一下,再进行烧录,烧录时候选好系统镜像然后点write就行,时间有点长,可以打把游戏。
系统烧好后,如果使用的无GUI系统,那么只能用ssh登录,而新系统是不支持ssh登录的,这里在tf卡boot目录新建一个文件改为ssh(没有后缀名),同时要让树莓派连网,可以用网线直连或连接WIFI的形式,如果连接WIFI(建议电脑开热点),那么就随便再新建一个文件命名为wpa_supplicant.conf,内容如下`

country=GB
 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
 
update_config=1
 
network={
    
    
 
    ssid="无线名"
 
    psk="无线密码"
 
}

将tf卡插入树莓派上电开机,如果使用的无GUI系统,那么只能用ssh登录,正常情况应该是红灯常亮,绿灯闪烁,这里有几个可能出现的情况:

  • 红灯不亮——供电不足:5v以及至少3A的电源供电
  • 绿灯常亮——系统问题(后面如果异常断电也会出现这种情况):将tf卡取下,给树莓派上电,看是否正常,再断电,插上tf卡,重新上电。

ssh登录

等树莓派连上网后,从电脑或者路由器管理页面获取ip,保证pc和树莓派在同一个局域网下,使用初始账号pi,密码rasberry登录。默认一开始是不能用root账号登录的,需要修改配置文件,但不推荐(后面配置会出现各种问题)。

音箱和麦克风配置

在使用wukong robot 项目之前我们需要把麦克风以及音箱配置好。
用xftp上传一首歌,然后安装mplayer,看能不能播放音乐

sudo apt-get install mplayer
mplayer xxx.mp3

可以用aplay -l查看输出设备(声卡号)card以及(设备号)device,一般情况都是正常的,如果异常就要检查硬件了

# 安装respeaker驱动
git clone https://github.com/respeaker/seeed-voicecard.git
cd seeed-voicecard
sudo ./install.sh
reboot

完成后可以用arecord -l查看输出设备(声卡号)card以及(设备号)device,成功后会显示respeaker seed等字样。
使用alsamixer对设备进行调整,F6可以切换设备,F3对应音箱,F4对应麦克风,调整他们的值,一般将音箱音量拉高,麦克风捕获适当拉高,最好Esc退出,用

arecord -d 3 test.wav
aplay test.wav

查看效果,如果合适就可以进行保存配置

sudo alsactl --file=asound.state store
sudo cp asound.state /var/lib/alsa/

如果出现音箱不能播放,找不到设备的情况,就需要配置.asoundrc文件

vim ~/.asoundrc

pcm.!default {
    
    
        type asym
        playback.pcm {
    
    
            type plug
            slave.pcm "hw:1,0"	# 1:音箱的声卡号;0:音箱的设备号
        }
        capture.pcm {
    
    
            type plug
            slave.pcm "hw:1,0"	# 1:麦克风的声卡号;0:麦克风的设备号
        }
}

ctl.!default {
    
    
        type hw
        card 1
}

然后重启设备

智能系统的搭建

这里直接看官方文档就行了

to be continued

猜你喜欢

转载自blog.csdn.net/qq_34935373/article/details/112796278