本产品是13.3寸智能魔镜,内置树莓派3A+,能显示新闻、天气、时间,支持智能语音对话,1920x1080超清分辨率,带钢化玻璃电容触摸面板。
您可以通过两种方法使用 Magic Mirros:方法一,使用预配置的镜像。方法二,在树莓派原始镜像上配置环境运行程序。
新手或者首次安装推荐安装预配置的镜像,预配置镜像已安装需要的库和驱动,程序开机自动运行。
- ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
- update_config=1
- country=US
- network={
- ssid="your_real_wifi_ssid"
- psk="your_real_password"
- }
- cd ~/MagicMirror/modules/MMM-VoiceAssistant/config
- cp config/config.js.cn ~/MagicMirror/config/config.js #显示中文
- #cp config/config.js.en ~/MagicMirror/config/config.js #显示英文
注意:Google助手服务需要科学上网,否则不会有响应。
注意:镜像中唤醒词采用的是公有模型,理论上对所有人都有效,但是实际可能会不能唤醒或者比较难唤醒。用户需要到snowboy官方注册账号训练自己的模型或者更改其他唤醒词。详细操作请看下面注意事项
- hdmi_group=2
- hdmi_mode=82
- hdmi_cvt 1920 1080 60 6 0 0 0
- git clone https://github.com/waveshare/WM8960-Audio-HAT
- cd WM8960-Audio-HAT
- #需要等待一定的时间
- sudo ./install.sh
- sudo reboot
- #dtparam=audio=on
- pi@raspberrypi:~ $ sudo dkms status
- wm8960-soundcard, 1.0, 4.19.58-v7l+, armv7l: installed
- pi@raspberrypi:~ $ aplay -l
- **** List of PLAYBACK Hardware Devices ****
- card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
- Subdevices: 1/1
- Subdevice #0: subdevice #0
- pi@raspberrypi:~ $ arecord -l
- **** List of CAPTURE Hardware Devices ****
- card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
- Subdevices: 1/1
- Subdevice #0: subdevice #0
- curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
- sudo apt install -y nodejs
- git clone https://github.com/MichMich/MagicMirror
- cd MagicMirror/
- npm install
- DISPLAY=:0 npm start
- cd ~/MagicMirror/modules
- git clone https://github.com/waveshare/MMM-VoiceAssistant.git
- cd MMM-VoiceAssistant
- cp config/config.js.en ~/MagicMirror/config/config.js #显示英文
- #cp config/config.js.cn ~/MagicMirror/config/config.js #显示中文
- cd ~/MagicMirror
- DISPLAY=:0 npm start
- sudo apt-get update
- sudo apt-get install python3-dev python3-venv
- python3 -m venv env
- env/bin/python -m pip install --upgrade pip setuptools wheel
- source env/bin/activate
- source ~/env/bin/activate
- sudo apt-get install swig
- sudo apt-get install libatlas-base-dev
- sudo apt-get install portaudio19-dev
- sudo apt-get install flac
- pip3 install PyAudio
- pip3 install SpeechRecognition
- git clone https://github.com/Kitt-AI/snowboy.git
- cd snowboy/swig/Python3
- make
- cd ../../examples/Python3
- cd ~/snowboy/examples/Python3
- python3 demo.py resources/models/smart_mirror.umdl
- INFO:snowboy:Keyword 1 detected at time: 2019-12-03 11:30:16
注意:在中国,无法直接使用Google的服务。需要科学上网,必须搭建可以访问google的路由器,然后树莓派连接到路由器。 注意:自2019年6月28日起,不再支持Python的Google Assistant Library 。只能用 Google Assistant Service。
- nano .asoundrc
- pcm.!default {
- type asym
- capture.pcm "mic"
- playback.pcm "speaker"
- }
- pcm.mic {
- type plug
- slave {
- pcm "hw:0,0"
- }
- }
- pcm.speaker {
- type plug
- slave {
- pcm "hw:0,0"
- }
- }
在开始使用Google Assistant之前,需要将Google Assistant Service 安装到树莓派中。以下是Google官方指导的链接。
https://developers.google.com/assistant/sdk/guides/service/python
请根据指南第三步,配置开发人员项目和配置账户,并创建一个OAuth Client ID JSON文件。 不要忘记将JSON文件复制到您的Raspberry Pi。
请根据指南第四步,注册设备模型。
安装Google Assistant SDK
- (env) $ sudo apt-get install portaudio19-dev libffi-dev libssl-dev
- (env) $ python -m pip install --upgrade google-assistant-sdk[samples]
授权Google Assistant SDK 安装或更新授权工具
- (env) $ python -m pip install --upgrade google-auth-oauthlib[tool]
生成凭据以能够运行示例代码和工具。引用您在上一步中下载的JSON文件 ;您可能需要将其复制到设备。不要重命名该文件。
- (env) $ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
- --save --headless --client-secrets /path/to/client_secret_ client-id .json
可以在终端中看到一个URL:
- Please visit this URL to authorize this application: https://...
复制URL并将其粘贴到浏览器中(可以在任何计算机上完成)。该页面将要求您登录您的Google帐户。登录到上一步中创建开发人员项目的Google帐户 。 从API批准许可请求后,浏览器中将显示一个代码,例如“ 4 / XXXX”。将此代码复制并粘贴到终端中:
- Please go to this URL: https://...
- Enter the authorization code:
如果授权成功,您将看到类似于以下的响应。如果您看到InvalidGrantError,则输入了无效的代码。请重试,请小心复制并粘贴整个代码。
- credentials saved: /path/to/.config/google-oauthlib-tool/credentials.json
运行如下命令测试 my-dev-project为创建的Actions Console项目的Google Cloud Platform项目ID。要在Actions Console中找到项目ID 、 my-model为在上一步中注册设备模型的名称。
- googlesamples-assistant-pushtotalk --project-id my-dev-project --device-model-id my-model
按Enter键,然后尝试以下一些查询 Who am I? What time is it? 正常情况Google Assitant 会回应。
安装PM2
- sudo npm install -g pm2
设置PM2开机启动
- pm2 startup
运行此命令后会显示一个类似如下的命令,复制此命令到终端运行。
- [PM2] To setup the Startup Script, copy/paste the following command:
- sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
使用PM2启动MagicMirror
- cd MagicMirror/modules/MMM-VoiceAssistant/pi
- pm2 start mm.sh
使用PM2启动snowboy 语音助手程序
- cd MagicMirror/modules/MMM-VoiceAssistant/pi
- pm2 start snowboy.sh
设置开机启动PM2脚本
- pm2 save
可以运行下面语句关闭对应的脚本服务。注意,需要使用Pi用户,不能使用管理员用户。
- pm2 stop mm
- pm2 stop snowboy
打开 lightdm.conf
- sudo vi /etc/lightdm/lightdm.conf
修改 lightdm.conf 找到[SeatDefaults]段下的’xserver-command’,取消注释,修改为如下:
- #xserver-command=X
修改为
- xserver-command=X -s 0 -dpms
重启
- sudo reboot
- vi snowboy.sh
- cd ~/MagicMirror/modules/MMM-VoiceAssistant/pi
- ~/env/bin/python3 demo.py smart_mirror.umdl snowboy.umdl
系统默认英文显示,国内需要科学上网才能显示,更改配置显示中文即可以显示。
- cd ~/MagicMirror/modules/MMM-VoiceAssistant/config
- cp config.js.cn ~/MagicMirror/config/config.js #显示中文
- #cp config.js.en ~/MagicMirror/config/config.js #显示英文
- sudo reboot #重启
程序中用到语音合成tts和aiui两种服务。打开~/MagicMirror/modules/MMM-VoiceAssistant/pi/aiui.py。可以看到如下程序
修改对应的值替换账户,注释中有文档中心连接。
打开~/MagicMirror/modules/MMM-VoiceAssistant/pi/audiofileinput.py。可以如下代码
按照前面 6.Google Assistant Service 安装部分操作,注册账户,设备模型,安装授权。
最后将程序中的 DEVICE_ID,DEVICE_MODEL_ID替换为对应的值