Skip to main content

ReSpeaker Core v2.0

enter image description here

Seeed 的 ReSpeaker Core v2.0 专为语音接口应用而设计。它基于瑞芯微 RK3229,这是一个四核 ARM Cortex A7 处理器,运行频率高达 1.5GHz,配备 1GB RAM。该开发板具有六麦克风阵列,集成了语音算法,包括 DoA(到达方向)、BF(波束成形)、AEC(声学回声消除)等。

ReSpeaker Core v2.0 运行 GNU/Linux 操作系统。它受益于强大而活跃的社区,允许使用现有的软件和工具进行开发、测试和部署,从而实现快速产品开发。

ReSpeaker Core v2.0 设计为功能丰富的开发板,供企业评估使用。为此,该开发板由两个主要部分组成,第一部分是中心核心模块,包含 CPU、内存(RAM)和 PMU。第二部分是外围载板,包含外设,如 eMMC、连接器和无线连接组件。通过 Seeed 的定制服务,可以对任一部分或两个部分进行定制。

特性

  • 高性能 SoC 的一体化解决方案

  • 1GB RAM 和 4GB eMMC

  • 6 麦克风阵列

  • USB OTG、USB 设备

  • WiFi b/g/n 和 BLE 4.0

  • 检测范围:约 5 米

  • Grove 接口用于连接其他传感器

  • 3.5mm 音频插孔和 JST2.0 连接器

  • 8 通道 ADC,用于 6 麦克风阵列和 2 环回(硬件环回)

  • 基于 Debian 的 Linux 系统

  • C++ SDK 和 Python 封装

  • 语音算法 SDK 及完整文档

  • 语音算法和功能:

    • 关键词唤醒
    • BF(波束成形)
    • DoA(到达方向)
    • NS(噪声抑制)
    • AEC(声学回声消除)和 AGC(自动增益控制)

规格参数

特性
Soc(瑞芯微 RK3229)CPU四核 Cortex-A7,最高 1.5GHz
GPUMali400MP,支持 OpenGL ES1.1/2.0
内存1GB RAM(核心模块包含 RAM 和 PMU)
系统工作电压:3.6-5V
模块上 80 引脚
模块上 PMU
外设网络WiFi b/g/n;
BLE 4.0;
以太网
USB2 x USB Host; 1 x USB OTG; 1 x USB 电源
Grove1 x Grove 接口(I2C 和数字)
视频4K VP9 和 4K 10bits H265/H264 视频解码,最高 60fps
音频最大采样率:96Khz;
6 麦克风阵列;
3.5mm 音频插孔;
JST2.0 音频输出连接器
存储板载 4GB eMMC;
SD 卡槽
其他12 x RGB LED;
8 GPIO 引脚
功耗待机模式200mA /5V
算法工作模式330mA /5V
note

​ 此表格仅列出了ReSpeaker Core v2.0的基本规格,更多专业参数请参考ReSpeaker Core v2.0声学和电气规格

硬件概述

接口和存储

  • 3.5mm耳机插孔: 音频输出。您可以将有源扬声器或耳机插入此端口。

  • USB OTG: 此USB端口用于通过putty(或其他串口工具)的串口模式连接到您的计算机。

  • USB电源输入: 此端口用于为Respeaker Core v2.0提供电源。

  • 扬声器插孔: 为无源扬声器输出音频。Jst 2.0插座。

  • UART: 您也可以通过此UART端口将ReSpeaker Core v2.0与您的计算机连接。

  • 8引脚GPIO: 用于扩展应用的通用输入输出接口。

  • SD卡插槽: 用于插入micro-SD卡。

  • eMMC: 嵌入式多媒体卡。您可以将镜像烧录到eMMC中,这样ReSpeaker Core v2.0就可以从eMMC启动。

  • USB主机: 您可以通过这两个USB主机端口将USB设备(如USB鼠标、USB键盘和USB闪存盘)插入ReSpeaker Core v2.0。

  • 以太网: 接入互联网。

  • HDMI: 视频输出。

  • 蓝牙和WIFI天线: 板载天线用于WIFI和蓝牙。我们还提供了2.4G天线或PCB天线的接口。

  • Grove插座: 用于数字或I2C的Grove插座。

系统图

您可以点击查看原始图像

引脚定义

接头的引脚索引定义

8引脚接头Grove插座

GPIO 引脚

MRAAHEADER PIN INDEXSYSFS PINRK3229 PIN
001091GPIO2_D3
11--VCC
221043GPIO1_B3
331127GPIO3_D7
441017GPIO0_C1
551067GPIO2_A3
66--GND
771013GPIO0_B5
881085GPIO2_C5
991084GPIO2_C4
1010--VCC
1111--GND

I2C 引脚

MRAAHEADER PIN INDEXSYSFS PINRK3229 PIN
08--I2C2_SCL
09--I2C2_SDA

尺寸

应用

  • 智能音箱
  • 智能语音助手系统
  • 录音设备
  • 语音会议系统
  • 会议通讯设备
  • 语音交互机器人
  • 车载语音助手
  • 其他需要语音命令的场景

入门指南

准备工作

本部分将告诉您:

  • 如何安装镜像
  • 如何访问串口控制台
  • 如何设置WiFi
  • 如何连接SSH和VNC
  • 如何设置蓝牙
  • 音频录制和播放测试

前提条件

  • ReSpeaker Core V2.0
  • Wi-Fi 网络
  • 4GB(或更大)SD卡和SD卡读卡器
  • PC或Mac
  • USB转UART适配器(可选)
  • 5V 1A Micro USB电源适配器(可选)
  • 两根Micro-USB线缆
caution

请轻柔地插入USB线缆,否则可能会损坏接口。请使用内部有4根线的USB线缆,2根线的线缆无法传输数据。如果您不确定手头的线缆规格,可以点击这里购买

镜像安装

与树莓派类似,您需要从SD卡安装ReSpeaker Core v2.0镜像来启动和运行。我们提供两种方式来启动Respeaker core v2.0。您可以从SD卡启动或从eMMC启动。

A. 从SD卡启动

  • 步骤1. 点击mirror-azure下载我们最新的镜像压缩文件:respeaker-debian-9-lxqt-sd-********-4gb.img.xzrespeaker-debian-9-iot-sd-********-4gb.img.xz
部分描述
iot / lxqtlxqt版本带有桌面GUI,而iot版本没有。如果您是ReSpeaker Core v2.0的新用户,推荐使用lxqt版本。
flasher / sdflasher版本用于刷写板载eMMC,刷写后可以移除SD卡。sd版本需要SD卡始终插入。

对于开发,我们推荐 lxqt + sd 版本。所以请下载 respeaker-debian-9-lxqt-sd-[date]-4gb.img.xz 文件。

caution

本wiki基于 respeaker-debian-9-lxqt-sd-20180610-4gb.img.xz 镜像版本。

  • 步骤 2. 使用SD卡读卡器将SD卡插入您的PC或MAC。您需要一张容量超过4G的SD卡。

  • 步骤 3. 点击这里下载Etcher,并使用Etcher直接将*.img.xz文件烧录到您的SD卡。或者将*.img.xz文件解压为*.img文件,然后使用其他镜像写入工具将其烧录到SD卡。



点击加号图标添加您刚下载的镜像,软件会自动选择您插入的SD卡。然后点击Flash!开始烧录。大约需要10分钟完成。

  • 步骤 4. 将镜像写入SD卡后,将SD卡插入您的ReSpeaker Core v2.0。使用PWR_IN micro usb端口为板子供电,上电后请勿移除SD卡。ReSpeaker Core v2.0将从SD卡启动,您可以看到USER1和USER2 LED灯亮起。USER1通常在启动时配置为心跳模式闪烁,USER2通常在启动时配置为在SD卡访问期间点亮。现在,您应该进入下一部分:串口控制台。

B. 从eMMC启动

出厂时EMMC中没有固件,您可以使用PC或Mac将ReSpeaker镜像文件刷写到ReSpeaker的eMMC(板载闪存)中。然后ReSpeaker将从其eMMC(板载闪存)启动,而不是从SD卡启动。

  • 步骤 1. 在mirror-azure下载我们最新的镜像zip文件respeaker-debian-9-iot-flasher-********-4gb.img.xzrespeaker-debian-9-lxqt-flasher-********-4gb.img.xz。lxqt版本带有Debian桌面,而iot版本没有。flasher版本用于刷写eMMC,sd版本用于从SD卡启动。

  • 步骤 2. 使用Etcher直接将*.img.xz文件烧录到SD卡,或者将*.img.xz文件解压为*.img文件,然后使用其他镜像写入工具将其烧录到SD卡。

  • 步骤 3. 烧录SD卡后,将SD卡插入ReSpeaker Core v2.0。使用PWR_IN micro usb端口为板子供电,在刷写过程中请勿移除SD卡。

在刷写过程中,您会看到USER1和USER2 LED交替闪烁。大约需要10分钟完成。当LED熄灭时,您可以关闭板子电源,拔出SD卡并重新上电。如果LED亮起,说明镜像已正确刷写到eMMC。

您也可以使用此命令检查镜像版本:cat /etc/issue.net。

串口控制台

现在您的ReSpeaker Core v2.0可以启动了,您可能想通过控制台访问Linux系统,以设置WiFi等。您有两种方式获取控制台:

  • A. OTG USB端口 - 这需要板子上运行Linux系统

  • B. UART端口 - 这是访问控制台的硬件方式,可用于调试底层问题

A. 通过OTG连接

  • 步骤 1. 找一根micro USB线,请确保它是数据线(不仅仅是电源线),将micro USB端插入ReSpeaker的OTG micro USB端口(ReSpeaker板上有两个micro USB端口,标有不同的丝印,一个是PWR_IN,另一个是OTG),然后将线的另一端插入您的计算机。

  • 步骤 2. 在您的计算机上检查串口是否出现:

    • Windows:检查设备管理器,应该有名为COMx的新串口设备,其中x是递增的数字。如果您使用windows XP/7/8,可能需要安装windows CDC驱动程序
    • Linux:ls /dev/ttyACM*,您应该得到/dev/ttyACMx,其中x会根据您使用的USB端口而变化。
    • Mac:ls /dev/cu.usb*,您应该得到/dev/cu.usbmodem14xx,其中xx会根据您使用的USB端口而变化。
  • 步骤 3. 使用您喜欢的串口调试工具连接串口,串口参数为:115200波特率,8位数据位,无奇偶校验,1位停止位,无流控制。例如:

    • Windows:使用PUTTY,选择Serial协议,填入ReSpeaker Core v2.0的正确COM端口,115200波特率,8位数据位,无奇偶校验,1位停止位,无流控制。
    • Linux:根据您的USB转TTL适配器,可能是screen /dev/ttyACM0(,1, and so on) 115200或screen /dev/ttyUSB0(,1, and so on) 115200
    • Mac:根据您的USB转TTL适配器,可能是screen /dev/cu.usbserial1412(,1422, and so on) 115200screen /dev/cu.usbmodem1412(,1422, and so on) 115200
  • 步骤 4. 默认用户名是respeaker,密码也是respeaker

B. 通过UART端口连接

在本节中,我们将指导您如何使用USB转TTL适配器建立从计算机到ReSpeaker的连接,该适配器将连接到ReSpeaker的Uart端口(Uart端口位于ReSpeaker扬声器插头的左侧)。

  • 步骤 1. 使用USB转TTL适配器连接Uart端口和您的PC/Mac。请注意RX/TX的电压为3.3V。如果您没有USB转TTL适配器,可以点击这里获取一个。

  • 步骤 2. 使用以下115200波特率的串口调试工具:

    • Windows:使用PUTTY,选择Serial协议,填入ReSpeaker Core v2.0的正确COM端口,115200波特率,8位数据位,无奇偶校验,1位停止位,无流控制。
    • Linux:根据您的USB转TTL适配器,可能是screen /dev/ttyACM0(,1, and so on) 115200screen /dev/ttyUSB0(,1, and so on) 115200
    • Mac:根据您的USB转TTL适配器,可能是screen /dev/cu.usbserial1412(,1422, and so on) 115200screen /dev/cu.usbmodem1412(,1422, and so on) 115200
  • 步骤 3. 登录用户名是 respeaker,密码也是 respeaker。

  • 步骤 4. 如果您没有 USB 转 TTL 适配器,您也可以使用 Arduino。如果使用 Arduino,将跳线的一端连接到 Arduino 的 RESET 引脚,另一端连接到 Arduino 的 GND 引脚。这将绕过您的 Arduino 的 ATMEGA MCU,将您的 Arduino 变成 USB 转 TTL 适配器,请参阅这里的视频教程。现在将 Arduino 的 GND 引脚连接到 Respeaker 的 Uart 端口的 GND 引脚。将 Arduino 的 Rx 引脚连接到 Respeaker 的 Uart 端口的 Rx 引脚。将 Arduino 的 Tx 引脚连接到 Respeaker 的 Uart 端口的 Tx 引脚。最后,通过 Arduino 的 USB 线将 Arduino 连接到您的 PC/Mac。现在通过输入以下命令检查您的 Mac 或 Linux PC 是否找到了您的 Arduino:

ls /dev/cu.usb* (Mac)
ls /dev/ttyACM* (Linux)

你应该会得到类似这样的结果:

/dev/cu.usbmodem14XX where XX will vary depending on which USB port you used (on Mac)
/dev/ttyACMX where X will vary depending on which USB port you used (on Linux)

现在按照上面的步骤2通过此串行连接连接到您的Respeaker。请注意这是一次性程序,因为接下来您将为Respeaker设置Wi-Fi连接,然后通过ssh或VNC进行连接。

网络设置

A. Wi-Fi设置

使用网络管理器工具nmtui配置您的ReSpeaker网络。nmtui已经预装在ReSpeaker镜像中。

sudo nmtui              # respeaker user needs sudo

然后你会看到一个像这样的配置页面,选择 Activate a connection 并按 Enter 键。

为 ReSpeaker v2.0 选择你的 Wi-Fi,按 Enter 键并输入你的 Wi-Fi 密码,然后再次按 Enter 键。当你看到一个 * 标记时,这意味着你的 ReSpeaker 已成功连接到你的 Wi-Fi 网络。按两次 Esc 键退出网络管理器配置工具。

现在使用下面的命令找到你的 ReSpeaker 的 IP 地址。

ip address

在下面的例子中,我们可以看到这个ReSpeaker的IP地址是192.168.7.108

root@v2:/home/respeaker# ip address

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: sit0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
link/sit 0.0.0.0 brd 0.0.0.0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether e0:76:d0:37:38:6d brd ff:ff:ff:ff:ff:ff
inet **192.168.7.108**/24 brd 192.168.7.255 scope global dynamic wlan0
valid_lft 604332sec preferred_lft 604332sec
inet6 2601:647:4680:ebf0:ec0a:5965:e710:f329/64 scope global noprefixroute dynamic
valid_lft 345598sec preferred_lft 345598sec
inet6 fe80::64de:cac8:65ef:aac8/64 scope link
valid_lft forever preferred_lft forever

除了网络管理器 GUI 界面外,网络管理器还有一个命令行工具。如果您要连接到隐藏的 Wi-Fi 网络,您需要使用这个命令行工具:

nmcli c add type wifi con-name mywifi ifname wlan0 ssid your_wifi_ssid
nmcli con modify mywifi wifi-sec.key-mgmt wpa-psk
nmcli con modify mywifi wifi-sec.psk your_wifi_password
nmcli con up mywifi

B. 以太网连接

您可以使用以太网线连接到网络。只需插入已连接到互联网的以太网线即可。

连接到 SSH 和 VNC

A. SSH

SSH 服务器在 ReSpeaker v2.0 中自动启动。对于 Windows 用户,可以使用第三方 SSH 客户端。对于 Linux/Mac 用户,SSH 客户端是内置的。

  • Windows:使用 PUTTY,选择 SSH 协议,填入正确的 IP 地址并点击打开。以 respeaker 用户身份登录,密码也是 respeaker。

  • Linux/Mac:

ssh [email protected].***.***
// password: respeaker
note

请注意,如果使用SSH时遇到性能缓慢的问题,请切换到不太拥挤的WiFi网络。

B. VNC

为了获得Alexa的授权,您需要使用VNC Viewer。系统内置了VNC服务器。VNC服务器将启动lxqt桌面GUI,这是一个轻量级的Qt桌面环境。 VNC服务也会自动启动。使用VNC ViewerVNC Viewer for Google Chrome连接到ReSpeaker Core v2.0的桌面。

要使用VNC,请将您的PC/Mac和ReSpeaker v2.0连接到同一个Wi-Fi网络。然后打开VNC Viewer,在地址栏中输入192.168.xxx.xxx192.168.xxx.xxx是开发板的IP地址,您可以使用ifconfig命令来查看。如果遇到Unencrypted connection,点击Continue继续。密码是respeaker

note

请注意,VNC连接依赖于良好的网络质量,请做好心理准备,您可能会遇到VNC显示刷新率非常低的情况。

连接扬声器或耳机

开发板使用SOC的内置编解码器来渲染播放。JST扬声器端口和耳机端口都由各自的放大器驱动,两个放大器都连接到SOC的同一个编解码器。SEEED实现的声卡驱动程序同时驱动录音设备和播放设备。因此在ALSA设备列表中没有独立的录音或播放声卡。它们都被命名为seeed-8mic-voicecard。

从开发板听到声音的最简单方法是插入耳机。如果您喜欢扬声器,开发板可以输出高达8W的驱动能力。

蓝牙设置

激活蓝牙

请输入以下命令来更新并激活ReSpeaker Core v2.0的蓝牙:

sudo apt update
sudo apt-mark hold firefox
sudo apt upgrade
note

如果更新失败,请更换到网络状况良好的其他WiFi并重新进行更新。

然后通过以下命令激活蓝牙:

sudo systemctl enable bt-auto-connect.service
sudo reboot -f

将 ReSpeaker Core v2.0 用作蓝牙音箱-从设备

当 ReSpeaker Core v2.0 重启时,打开您手机或电脑的蓝牙,您会发现一个名为 ReSpeaker-xxxx 的蓝牙设备。 选择并连接到它。将音箱或耳机插入 ReSpeaker Core v2.0,然后播放音乐并享受您的蓝牙音箱。

将 ReSpeaker Core v2.0 用作蓝牙播放器-主设备

除了仅作为蓝牙音箱工作外,它还可以作为蓝牙播放器来连接您的蓝牙耳机或蓝牙音箱。 好的,让我们开始连接。

  • 步骤 1. 输入 bluetoothctl 打开蓝牙 shell。

  • 步骤 2. 输入 scan on 扫描您的蓝牙设备。

  • 步骤 3. 当 ReSpeaker Core v2.0 找到您的目标设备时,输入 scan off。 在本教程中,假设 MDR-1000X 耳机是我们的目标,记下设备 ID Device 04:5D:4B:81:35:84

respeaker@v2:~$ bluetoothctl
[NEW] Controller 43:43:A0:12:1F:AC ReSpeaker-1FAC [default]
Agent registered
[bluetooth]# scan on
Discovery started
[CHG] Controller 43:43:A0:12:1F:AC Discovering: yes
[NEW] Device C8:69:CD:BB:9B:B3 C8-69-CD-BB-9B-B3
[NEW] Device E1:D9:68:0E:51:C0 MTKBTDEVICE
[NEW] Device 62:15:9C:3F:40:AA 62-15-9C-3F-40-AA
[NEW] Device 56:AF:DE:C0:34:25 56-AF-DE-C0-34-25
[NEW] Device B8:86:87:99:FB:10 SOLARRAIN
[CHG] Device B8:86:87:99:FB:10 Trusted: yes
[NEW] Device 04:5D:4B:81:35:84 MDR-1000X
[CHG] Device 04:5D:4B:81:35:84 Trusted: yes
[CHG] Device 4C:04:59:38:D3:25 ManufacturerData Key: 0x004c
[CHG] Device 4C:04:59:38:D3:25 ManufacturerData Value:
10 05 0b 10 99 18 0a .......
[bluetooth]# scan off
[CHG] Device 04:5D:4B:81:35:84 RSSI is nil
[CHG] Device B8:86:87:99:FB:10 TxPower is nil
[CHG] Device B8:86:87:99:FB:10 RSSI is nil
[CHG] Device 4C:04:59:38:D3:25 RSSI is nil
[CHG] Device 58:44:98:93:35:24 RSSI is nil
Discovery stopped
[bluetooth]#

  • 步骤 4. 现在使用命令 pair + 设备 ID 将蓝牙设备与 ReSpeaker Core v2.0 配对。

  • 步骤 5. 当您看到消息 Pairing successful 时,点击 connect + 设备 ID

[bluetooth]# pair 04:5D:4B:81:35:84
Attempting to pair with 04:5D:4B:81:35:84
[CHG] Device 04:5D:4B:81:35:84 Connected: yes
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 00001108-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device 04:5D:4B:81:35:84 ServicesResolved: yes
[CHG] Device 04:5D:4B:81:35:84 Paired: yes
Pairing successful
[CHG] Controller 43:43:A0:12:1F:AC Discoverable: no
[CHG] Device 04:5D:4B:81:35:84 ServicesResolved: no
[CHG] Device 04:5D:4B:81:35:84 Connected: no
[CHG] Controller 43:43:A0:12:1F:AC Discoverable: yes
[bluetooth]# connect 04:5D:4B:81:35:84
Attempting to connect to 04:5D:4B:81:35:84
[CHG] Device 04:5D:4B:81:35:84 Connected: yes
Connection successful
[CHG] Device 04:5D:4B:81:35:84 ServicesResolved: yes
[CHG] Controller 43:43:A0:12:1F:AC Discoverable: no
[MDR-1000X]#

如果弹出 Connection successful,配置成功!

您可以点击 exitquit 退出 shell,然后使用以下命令测试您的蓝牙设备。

arecord bluetoothtest.wav
aplay bluetoothtest.wav

录制和播放

1.通过ALSA测试

由于这是开发阶段的技术文档,声音设备的索引可能会随版本变化。因此,请首先使用以下命令检查正确的设备索引:

respeaker@v2:~$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: seeed8micvoicec [seeed-8mic-voicecard], device 0: 100b0000.i2s1-ac108-pcm0 ac108-pcm0-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

respeaker@v2:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: seeed8micvoicec [seeed-8mic-voicecard], device 1: 100b0000.i2s1-rk3228-hifi rk3228-hifi-1 []
Subdevices: 1/1
Subdevice #0: subdevice #0

找到名称带有 seeed 前缀的声卡。对于上面的示例,录音设备是 hw:0,0,表示声卡 0/设备 0。 播放设备是 hw:0,1,表示声卡 0/设备 1。然后使用以下命令测试录音和播放声音:

# record & playback 2 channels audio
arecord -Dhw:0,0 -f S16_LE -r 16000 -c 2 hello.wav
aplay -Dhw:0,1 -r 16000 -c 2 hello.wav

# If you want to output the sound by the bluetooth device, you need to use the command below to play
aplay -r 16000 -c 2 hello.wav

# record 8 channels audio
# there are 6 microphones on board, and ac108 compose the 2 remaining channels.
arecord -Dhw:0,0 -f S16_LE -r 16000 -c 8 hello_8ch.wav

此外,你可以同时录音和播放。

arecord | aplay

2. Test via PulseAudio

首先检查 PulseAudio 是否正在运行:

respeaker@v2:~$ ps aux|grep pulse|grep -v grep
respeak+ 1109 0.0 0.7 363272 7932 ? S<l 01:01 0:00 /usr/bin/pulseaudio --start --log-target=syslog

如果不是,请参考 PulseAudio 的文档来启用 PulseAudio 的自动生成。然后通过以下方式测试:

parecord --channels=8 --rate=16000 --format=s16le hello2.wav
paplay hello2.wav

此外,默认的 ALSA 设备现在连接到 PulseAudio,因此使用以下命令也会通过 PulseAudio 播放/录制声音:

arecord -v -f cd hello3.wav
aplay hello3.wav

到目前为止,我们已经学习了 ReSpeaker Core v2.0 开发板的基本操作,让我们继续前进。我们可以使用 ReSpeaker Core v2.0 来构建我们自己的 AVS(Alexa 语音服务)设备或 Dueros(百度语音助手)设备。

请按照 ReSpeaker Core V2 & Wio Link 教程 来使用 ReSpeaker Core V2 通过 IFTTT 控制 Wio Link。

与 GPIO 一起使用

这部分将介绍如何使用 MRAAUPM 来控制 Respeaker Core v2.0 上的 GPIO 和 Grove 接口。

  • 步骤 1. 将 MRAA 和 UPM 库更新到最新版本

首先,我们需要安装最新的 MRAA 和 UPM 包。

sudo apt install  python-mraa python-upm libmraa1 libupm1 mraa-tools
  • 步骤 2. 检查你的平台信息
#only have bus 0 and id=03(/dev/i2c-3), 0 is the i2c number for mraa and upm
respeaker@v2:~$ mraa-i2c list
Bus 0: id=03 type=linux

#mraa gpio numbers and system gpio numbers and it's pinmux
respeaker@v2:~$ mraa-gpio list
00 GPIO91: GPIO
01 VCC:
02 GPIO43: GPIO
03 GPIO127: GPIO
04 GPIO17: GPIO
05 GPIO67: GPIO
06 GND:
07 GPIO13: GPIO
08 I2C2_SCL: I2C
09 I2C2_SDA: I2C
10 VCC:
11 GND:
12 GPIO66: GPIO

ReSpeaker Core v2.0 开发板的引脚定义描述请参考 引脚定义

  • 步骤 3. 使用 MRAA 或 UPM 的演示

A. 使用 MRAA 库

直接控制 GPIO

材料

ReSpeaker Core v2.0Grove - 蜂鸣器
enter image description hereenter image description here
立即购买立即购买

将 Grove PIR 传感器的 SIG 引脚通过跳线连接到 ReSpeaker Core v2.0 的接头引脚 0。不要忘记同时连接 VCC 和 GND。然后在控制台中输入以下代码

respeaker@v2:~$ python
Python 2.7.13 (default, Jan 19 2017, 14:48:08)
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mraa
>>> x = mraa.Gpio(0)
>>> x.dir(mraa.DIR_OUT)
0
>>> x.write(0)
0
>>> x.write(1)
0
>>>

当您点击 x.write(1) 时,您将听到蜂鸣器发出的尖叫声。

PIR 运动传感器示例

材料

ReSpeaker Core v2.0Grove - PIR 运动传感器
enter image description hereenter image description here
立即获取立即获取

在这个示例中,我们将使用 Python 代码监听 Grove PIR 传感器的触发。 使用跳线将 Grove PIR 传感器的 D1 引脚连接到 ReSpeaker Core v2.0 的接头引脚 0。不要忘记同时连接 VCC 和 GND。 然后将下面的代码复制到一个新文件中,保存为 Python 文件,命名为 mraa_pir.py。将此文件复制到您的 ReSpeaker Core v2.0 中。

import mraa

def on_trigger(gpio):
print("pin " + repr(gpio.getPin(True)) + " = " + repr(gpio.read()))

pin = 0

try:
x = mraa.Gpio(pin)
print("Starting ISR for pin " + repr(pin))
x.dir(mraa.DIR_IN)
# respeaker v2 only support EDGE_BOTH
x.isr(mraa.EDGE_BOTH, on_trigger, x)
var = raw_input("Press ENTER to stop")
x.isrExit()
except ValueError as e:
print(e)

然后使用以下命令运行代码。(确保您已经定位到包含刚刚保存的 mraa_pir.py 文件的文件夹中)

sudo python mraa_pir.py

The result will be like

$ sudo python mraa_pir.py
Starting ISR for pin 0
Press ENTER to stoppin 1091 = 0
pin 1091 = 0
pin 1091 = 1
...

B. 使用 UPM 库

UPM 项目基于 MRAA 库实现了传感器驱动程序,因此我们不再需要关心 GPIO 编程或传感器的 I2C 地址,特定传感器的所有默认信息和逻辑都已封装到 UPM 库中。UPM 已支持大量传感器。UPM 模块。但请注意,我们没有确认每个传感器都能在 ReSpeaker Core v2.0 上正常工作。

Grove 数字光传感器示例

材料

ReSpeaker Core v2Grove - 数字光传感器
enter image description hereenter image description here
立即购买立即购买

这是 Grove 数字光传感器的示例,复制自 UPM github 仓库。

请通过 Grove 接口将 PIR 运动传感器插入您的 Respeaker Core v2.0。 然后将下面的代码复制到新文件中,保存为 python 文件,命名为 tsl2561.py。将此文件复制到您的 ReSpeaker Core v2.0 中。

#!/usr/bin/env python
# Author: Zion Orent <[email protected]>
# Copyright (c) 2015 Intel Corporation.
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

from __future__ import print_function
import time, sys, signal, atexit
from upm import pyupm_tsl2561 as upmTsl2561

def main():
# Instantiate a digital light sensor TSL2561 on I2C
myDigitalLightSensor = upmTsl2561.TSL2561()

## Exit handlers ##
# This function stops python from printing a stacktrace when you hit control-C
def SIGINTHandler(signum, frame):
raise SystemExit

# This function lets you run code on exit, including functions from myDigitalLightSensor
def exitHandler():
print("Exiting")
sys.exit(0)

# Register exit handlers
atexit.register(exitHandler)
signal.signal(signal.SIGINT, SIGINTHandler)

while(1):
print("Light value is " + str(myDigitalLightSensor.getLux()))
time.sleep(1)
if __name__ == '__main__':
main()

结果应该类似于:

respeaker@v2:~$ python tsl2561.py       
Light value is 0
Light value is 38
Light value is 20
Light value is 54
Light value is 13
Light value is 44
Light value is 31

常见问题

Q1: 如何使用 Audacity 录制和播放?

A1: lxqt 版本已预装 Audacity,请点击左下角的鸟形按钮,您可以在声音和视频 -> Audacity 中找到它。

打开 Audacity 后,请点击小黑箭头选择录制和播放设备,并按下图所示进行设置。

您应该为录制和播放设备都选择 Seeed-8mic-voicecard。您可以选择 1/2/4/6/8 通道进行录制和播放。如您所见, 图片中有 8 个通道,但是通道 7 和 8 中没有数据。这是因为这两个通道是播放通道。 通道 7 用于 3.5mm 耳机,通道 8 用于 JST2.0 扬声器(如果您没有 JST 线缆,也可以使用跳线)。比如,我们使用 JST 扬声器:

  • 步骤 1. 按上图设置,点击录制按钮,录制一段音频。

  • 步骤 2. 点击停止按钮,然后您会看到通道 7 和 8 是空的。

  • 步骤 3. 再次点击录制按钮,这次您会发现通道 8 发生了变化。

Q2: 如何访问 ReSpeaker Core v2.0 的 AP?

A2: 您可以使用两线电缆为 ReSpeaker Core v2.0 供电。当系统运行时,Respeaker Core v2.0 可以作为 AP。您可以使用计算机 访问此 AP。如图所示。您可以按照步骤配置 ReSpeaker Core v2.0 的 WiFi。

  • 步骤 1. 输入以下命令激活 ReSpeaker Core v2.0 的 AP。
sudo systemctl enable re-wifi.service
sudo reboot -f

  • 步骤 2. 访问 ReSpeaker Core v2.0 的 AP。ReSpeaker Core v2.0 重启后,使用您的手机或电脑搜索 WiFi。您会发现 AP 名称类似于 ReSpeaker_xxxx,用户名是 respeaker,密码也是 respeaker

  • 步骤 3. 现在您可以使用 Putty,SSH 模式进入串行控制台。Wlan1 的 IP 是 192.168.42.1,您需要使用此 IP 来建立连接。 ReSpeaker Core v2.0 的用户名是 respeaker,密码是 respeaker

  • 步骤 3. 当您进入串行控制台后,您可以设置 WiFi

Q3: 如何调节音量?

A3: 您可以使用 Alsamixer 来调节播放音量和录音灵敏度。

  • 步骤 1. 输入以下代码打开 Alsamixer:
alsamixer
  • 步骤 2. 按键盘上的 F6 键选择 Seeed-8mic-voicec 声卡。
  • 步骤 3. 您将看到如下图所示的界面。您可以通过按 键来选择播放语音或录音通道。 您可以通过按 键来调整数值。

Q4: 如何使用用户按钮? A4: 如您所见,ReSpeaker Core v2.0 的背面有一个用户按钮。这里我们提供一个 python 演示来展示如何使用它。

  • 步骤 1. 输入以下命令:
sudo pip install evdev
  • 步骤 2. 复制下面的代码并将其保存为一个 Python 文件,我们将其命名为 usrer_button.py
from evdev import InputDevice,categorize,ecodes

key = InputDevice("/dev/input/event0")
for event in key.read_loop():
if event.type == ecodes.EV_KEY:
print(categorize(event))
  • 步骤 3. 点击以下命令来运行此演示。
sudo python usrer_button.py

然后你会看到类似这样的结果:

Q5: 计算机无法识别 ReSpeaker Core v2.0,驱动程序问题?

A5: 当您通过 OTG 或 UART 将 ReSpeaker Core v2.0 连接到计算机时可能会发生这种情况。 这是因为 CDC 串行驱动程序与其他 OTG 驱动程序存在冲突。请卸载冲突的驱动程序 并重新连接 ReSpeaker Core v2.0。

Q6: 如果我想使用外部天线怎么办?

A6: ReSpeaker Core v2.0 使用 AP6212 来提供 WiFi 和蓝牙功能,它们共享同一个天线。 除了板载天线,您还可以使用外部天线。为此,您需要移除一个电阻并将其 焊接到新的焊盘上,如下所示:

  • 首先您需要移除橙色框中的电阻。
  • 然后请将其焊接到绿色框上。

Q7: 如何构建我自己的刷写器固件?这样我就可以将自己的固件烧录到其他 ReSpeaker Core v2.0 上。

A7: 请在 RAM>2G 的 ARM debian 系统上运行镜像构建器。

以下是详细说明。

  • 步骤 1. git clone image_builder 仓库
  • 步骤 2. 修改上传路径 @ /publish/respeaker.io_stable.sh
  • 步骤 3. sudo ./publish/respeaker.io_stable.sh

Q8: 当将烧录的 SD 卡插入 ReSpeaker Core v2.0 时,设备管理器中没有 COM 端口,HDMI 接口也没有显示。

A8: 请使用 USB 转 TTL 适配器直接连接到 UART,您会看到以下错误。

[    2.119560] mmcblk0: timed out sending SET_BLOCK_COUNT command, card status 0x400900
[ 2.128134] mmcblk0: command error, retrying timeout

根本原因是旧的SD卡无法与linux系统兼容。请更换为较新的SD卡,这些SD卡支持所有eMMC命令,例如ScanDisk Ultra。

资源

项目

ReSpeaker Core v2.0 - Alexa演示

在这个演示中,我们使用ReSpeaker Core v2.0与Alexa对话。您可以提出任何问题,并像朋友一样与ReSpeaker Core v2.0交谈。此外,该产品还可以与Google Assistant和Bing配合使用。唤醒词是Snowboy,当然您也可以制作自己的唤醒词。


ReSpeaker Core v2.0 - 唤醒距离测试

在这个演示中,我们测试了ReSpeaker Core v2.0的唤醒距离。我们使用带有唤醒词Snowboy的Alexa。正如您在屏幕上看到的,"Alexa:status code 204"意味着成功唤醒了Alexa。

凭借先进的算法和六个高质量麦克风,结果令人惊叹!我们可以在16米(52英尺)外唤醒ReSpeaker Core v2.0!

ReSpeaker Core v2.0 - 语音接待系统

这个智能系统由语音助手(ReSpeaker Core v2.0)和电话助手(Linklt One)组成。正如您所看到的,当访客告诉语音助手他要找的人的姓名时,这个小智能助手会识别并在其数据库中搜索该人。如果有匹配的姓名,我们的助手会给他打电话。当该人确认访客身份后,他只需发送"Open"消息即可开门,让访客进入。

在您的房子或工作场所前面有这样一个语音接待系统怎么样?是不是很酷?


ReSpeaker Core v2.0 - 简单语音接待系统

接待服务的基本功能是迎接访客,让他们感到受欢迎,并防止未经授权的人员进入办公室。我们利用ReSpeaker Core v2.0的功能来设计语音接待服务。该系统可以与访客互动,并向被访问的人传递消息。将来,我们可以设计一个小型办公室员工电话列表数据库,员工可以向系统发送消息,系统使用ReSpeaker Core v2.0的GPIO功能为访客开门。我们使用Microsoft Bing语音转文本服务和Twilio/腾讯消息API来编写python脚本。更多信息,请参考ReSpeaker语音接待系统

技术支持与产品讨论

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...