PiShow 用树莓派打造自己的 Echo Show

关于 PiShow 的警告

  • PiShow 不能替代 Echo Show 。尽管此版本包含许多 Echo Show 功能,但有意将一些重要功能 (包括本地播放视频的功能) 从此版本中排除。
  • 此智能屏幕版本的 AlexaPi 不包括人声唤醒单词触发器”Alexa”。与 Alexa 通话时,用户将按”A” 键。
  • PiShow 无法在 VNC 激活的情况下启动。必须在树莓派上禁用 VNC 。
  • 音乐 - 用户可以在 Pi 触摸屏上暂停音乐。音乐功能与 AlexaPi 文章中描述的功能相同。
  • Alexa Skills 在 PiShow 上可用, Alexa Skill 中的任何可视屏幕也可以在 PiShow 上看到。此外, Alexa Skills 已启用触摸屏功能。
  • 如果您使用的是触摸屏,并且在 Alexa 讲话时点击屏幕,则她将停止讲话。这与回声秀上的行为相同。

为什么要建立 PiShow ?

在我们的上一篇文章中,我们介绍了购买 AlexaPi 项目组件与购买 Echo Dot 的成本差异。在这篇文章中,我们完全公开了购买 Echo Show 相对于 PiShow 的组件要便宜。

如果您已经拥有树莓派和触摸屏,那么这将是一个有趣的周末 STEM 项目。有趣的是关于语音技术如何在幕后工作的 制作 和 _学习_。

您需要什么

  • 树莓派 3B + 或 [树莓派
  • 16GB (或更大) 的 microSD 卡
  • 电源 / 键盘 / 鼠标 / 显示器 / HDMI 电缆 (适用于树莓派)
  • USB 麦克风
  • 3.5 毫米扬声器或 USB 连接器。我们仅使用 3.5 毫米扬声器进行了测试,但是 USB 也可以使用。
  • HDMI 监视器,[7 英寸树莓派触摸屏或 [3.5” 或 5”TFT 屏幕
  • 可选:迷你无线键盘

时间:计划至少 3 个小时才能完成此项目。根据您的 Pi 型号和互联网速度, AVS Device SDK 的”make install” 步骤大约需要 2 个小时。

PiShow 设置和安装

1 重要提示:按照我们上一篇文章 [如何使用树莓派构建 Alexa 扬声器的步骤] 中的详细说明完成 AVS 安装。 - 服务)。

2 如果您的 AlexaPi 当前正在运行,请按 Ctrl-C 停止脚本。扬声器,麦克风和电源仍应连接。

3 附加屏幕:我为 PiShow 版本添加了 7 英寸树莓派触摸屏。但是您可以使用通过 HDMI 或 GPIO 引脚连接的第三方触摸屏。您可以找到这样的屏幕,价格仅为 $ 23。如果您使用非触摸屏,则无法使用这些功能。

后视图:

4 打开终端。

5 我们将从创建文件夹并安装 PiShow 所需的库和应用开始。输入以下命令。

cd/home/pi 

mkdir sdk_folder 

cd sdk_folder 

mkdir sdk-build sdk-source sdk-install db 

sudo apt-get -y install git gcc cmake libsqlite3-dev libcurl4-openssl-dev libfaad-dev libssl-dev libsoup2.4-dev libgcrypt20-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-良好的 libasound2-dev doxygen 

pip install commentjson 

您的树莓派可能已经安装了 commentjson

6 下一步,我们将安装 PortAudio 来记录麦克风数据。

cd 3rd

wget -c http://www.portaudio.com/archives/pa_stable_v190600_20161030.tgz 

tar zxf pa_stable_v190600_20161030.tgz 

cd portaudio 

./configure

7 在 PortAudio 文件夹中运行”make”。在树莓派 4 上,此命令耗时约 1.5 分钟。

cd $ HOME/sdk_folder/sdk-source 

git clone --single-branch --branch v1.21.0 git://github.com/alexa/avs-device-sdk.git 

cd $ HOME/sdk_folder/sdk-build 

cmake $ HOME/sdk_folder/sdk-source/avs-device-sdk \
-DGSTREAMER_MEDIA_PLAYER=on\
-DPORTAUDIO = ON \
-DPORTAUDIO_LIB_PATH = $ HOME/sdk_folder/third-party/portaudio/lib/.libs/libportaudio.a \
-DPORTAUDIO_INCLUDE_DIR = $ HOME/sdk_folder/third-party/portaudio/include \
-DCMAKE_BUILD_TYPE=debug
-DCMAKE_INSTALL_PREFIX = $ HOME/sdk_folder/sdk-install \
-DRAPIDJSON_MEM_OPTIMIZATION=close

完成安装后,屏幕上应该没有错误消息。

9 将 config.json 文件从 AlexaPi 项目 (/home/pi/) 复制到 Install 文件夹并生成 AlexaClientSDKConfig.json 文件。

cp 〜/config.json $ HOME/sdk_folder/sdk-source/avs-device-sdk/tools/Install 

cd $ HOME/sdk_folder/sdk-source/avs-device-sdk/tools/Install 

bash genConfig.sh config.json \
$ HOME/sdk_folder/db \
$ HOME/sdk_folder/sdk-source/avs-device-sdk \
$ HOME/sdk_folder/sdk-build/Integration/AlexaClientSDKConfig.json \
-DSDK_CONFIG_MANUFACTURER_NAME="制造商名称"\
-DSDK_CONFIG_DEVICE_DESCRIPTION="设备描述"

10 打开文件管理器并导航到 /home/pi/sdk_folder/sdk-build/Integration/ 文件夹。

11 右键单击 AlexaClientSDKConfig.json ,然后选择文本编辑器以打开文件进行编辑。

12 在第一组括号中添加 gstreamerMediaPlayer 的信息。

“gstreamerMediaPlayer”:{

“audioSink”:”alsasink”

},

13 保存文件。

14 您还可以将备份副本保存为 AlexaClientSDKConfig_backup.json

15 关闭您的文本编辑器。

16 创建或修改 /.asoundrc 文件。

光盘

 sudo 纳米〜/.asoundrc 

17 将以下行添加到〜/.asoundrc

pcm 。!默认{
   类型不对称
   playing.pcm {键入 plug slave.pcm"hw:0 , 0"
   }
   capture.pcm {
     型插头
      slave.pcm"硬件:1 , 0"
   }
 }

18 按 Ctrl-X , Y 和 Enter 键保存〜/.asoundrc 文件。

  1. 测试到目前为止的进度。

    cd $ HOME/sdk_folder/sdk-build

    PA_ALSA_PLUGHW = 1 ./SampleApp/src/SampleApp
    ./Integration/AlexaClientSDKConfig.json DEBUG9

    20 类似于您在 AlexaPi 项目中完成的身份验证,在终端中,向上滚动以找到您的代码,然后导航至和输入您的代码。

21 按继续,您应该在浏览器中看到一条成功消息。

22 返回您的终端,然后向上滚动至搜索” 授权” 消息。

23 此 AlexaPi 的工作方式与原始 AlexaPi 项目略有不同,在与 Alexa 通话之前,您必须先键入”t”,然后按 Enter 键。现在就试试。 按”t” 进入并说,” 现在几点?”

如果 Alexa 提供了时间,则您已成功完成 AVS Device SDK 示例应用程序的安装。恭喜你!

  1. 按 Ctrl-C 停止示例应用程序。

    25 接下来,我们将下载并” _ make” _ APL 核心库。此序列”make” 中的最后一个命令大约需要 15 分钟才能完成。

    cd $ HOME/sdk_folder

    git clone - 单分支–branch v1.4.1 git://github.com/alexa/apl-core-library.git

    cd $ HOME/sdk_folder/apl-core-library

    mkdir 构建

    光盘制作

    cmake ..

    使

  1. 安装 Alexa Smart Screen SDK 依赖项, Websocket ++, AISO 和 Node.js

    cd $ HOME/sdk_folder/third-party

    wget https://github.com/zaphoyd/websocketpp/archive/0.8.1.tar.gz -O websocketpp-0.8.1.tar.gz

    tar -xvzf websocketpp-0.8.1.tar.gz

    cd $ HOME/sdk_folder/third-party

    sudo apt-get -y install libasio-dev –no-install-recommends

    cd $ HOME/sdk_folder/third-party

    curl -sL https://deb.nodesource.com/setup_13.x | sudo -E bash-

    sudo apt-get install -y nodejs

27 下载并安装 Alexa Smart Screen SDK 。最后一步” 制作” 耗时约 25 分钟。

cd $ HOME/sdk_folder 

 git clone git://github.com/alexa/alexa-smart-screen-sdk.git 

mkdir ss-build 

光盘 ss-build 

cmake -DCMAKE_PREFIX_PATH = $ HOME/sdk_folder/sdk-install \
 -DWEBSOCKETPP_INCLUDE_DIR = $ HOME/sdk_folder/third-party/websocketpp-0.8.1 \
 -DDISABLE_WEBSOCKET_SSL = ON \
 -DGSTREAMER_MEDIA_PLAYER =开启\
 -DCMAKE_BUILD_TYPE =调试
 -DPORTAUDIO = ON -DPORTAUDIO_LIB_PATH = $ HOME/sdk_folder/third-party/portaudio/lib/.libs/libportaudio.a \
 -DPORTAUDIO_INCLUDE_DIR = $ HOME/sdk_folder/third-party/portaudio/include/\
 -DAPL_CORE = ON \
 -DAPLCORE_INCLUDE_DIR = $ HOME/sdk_folder/apl-core-library/aplcore/include \
 -DAPLCORE_LIB_DIR = $ HOME/sdk_folder/apl-core-library/build/aplcore \
-DAPLCORE_RAPIDJSON_INCLUDE_DIR = $ HOME/sdk_folder/apl-core-library/build/rapidjson-prefix/src/rapidjson/include \
 -DYOGA_INCLUDE_DIR = $ HOME/sdk_folder/apl-core-library/build/yoga-prefix/src/yoga \
 -DYOGA_LIB_DIR = $ HOME/sdk_folder/apl-core-library/build/lib \
  ../alexa-smart-screen-sdk 

使

接下来,我们可以测试我们的 PiShow 应用程序。 (如果您使用的是 VNC ,则需要停止并禁用 VNC 才能启动该应用程序。)

运行 PiShow

28 打开文件管理器并导航到: /home/pi/sdk _folder/ss-build/modules/GUI/index.html

29 通过 Chromium 浏览器打开 index.html ,双击 index.html

30 返回您的终端并输入以下命令以启动您的 PiShow 。

cd $ HOME/sdk_folder/ss-build PA_ALSA_PLUGHW = 1 ./modules/Alexa/SampleApp/src/SampleApp -C \$ HOME/sdk_folder/sdk-build/Integration/AlexaClientSDKConfig.json -C $HOME/sdk_folder/alexa-smart-screen-sdk/modules/GUI/config/SmartScreenSDKConfig.json -L INFO 

31 您可能需要像在步骤 22 中一样对 PiShow 示例应用程序进行身份验证。如果是,请在终端中向上滚动以查找代码,然后导航至并输入您的代码。

32 返回您的 Chromium 浏览器,您应该看到消息” 按住”A” 然后说”

33 尝试一下!快速说明:Chromium 中的 index.html 必须是 PiShow 起作用的活动窗口。按住”A” 键,同时说” 告诉我天气。”

恭喜!您已经制作了 PiShow !

始终使用相同的过程:使用 /home/pi/sdk_folder/ss-build/modules/GUI/index.html 作为活动窗口,在与 Alexa 通话时按住”A” 键。您无需说出唤醒词”Alexa”。

在新的 PiShow 上尝试的事情

*” 播放音乐”- 如果使用触摸屏,则可以通过点击屏幕上的暂停按钮来暂停音乐。
*” 给我讲个笑话。”
*”Open Big Sky”- 具有出色图形的天气应用。
*” 地球看起来像什么?”
*” 启用空间站”

要停止 PiShow ,请返回到您的终端并按 Ctrl-C 。

如果您关闭或重新启动 Pi ,则可以使用 Terminal 命令重新启动 PiShow:

cd $ HOME/sdk_folder/ss-build 
 PA_ALSA_PLUGHW = 1 ./modules/Alexa/SampleApp/src/SampleApp -C \
 $ HOME/sdk_folder/sdk-build/Integration/AlexaClientSDKConfig.json -C \
 $ HOME/sdk_folder/alexa-smart-screen-sdk/modules/GUI/config/SmartScreenSDKConfig.json -L 
分享到