Smart Retail Voice AI
Leverage Seeed's Smart Retail Voice AI solution to capture and analyze in-store customer conversations. Our edge AI technology enables on-device speech-to-text processing, transforming voice data into actionable insights without relying on cloud services. Enhance customer experience, optimize store operations, and gain valuable feedback with our offline AI-powered voice analytics tailored for retail environments.
| Smart Retail Voice AI |
|---|
![]() |
Smart Retail Voice AI
Build an in-store voice analytics pipeline using edge devices and SenseCraft Voice to capture conversations on-site, run on-device speech-to-text, and turn customer voice into structured data.
On-Device Speech-to-Text at the Edge
SenseCraft Voice runs directly on in-store edge devices to handle voice activity detection and speech recognition locally. All speech is processed at the edge, dramatically reducing dependency on cloud connectivity for real-time transcript generation.
Far-Field, Retail-Ready Audio Capture
The solution is designed for far-field audio capture in noisy retail environments. With support for microphone arrays, beamforming, and noise suppression, it focuses on real customer–staff conversations even with background music and surrounding chatter.
Privacy-First Edge Architecture
Because audio is transcribed locally on edge devices and only text plus metadata are sent upstream, retailers can better control privacy and compliance risks, while keeping cloud costs and network requirements low.
From Conversations to Data-Driven Decisions
Transcripts generated by SenseCraft Voice become structured, analyzable data. Retailers can measure service quality, identify common questions and pain points, and continuously improve scripts, policies, and overall store experience.
Getting Started
In this section, we will guide you through the steps to set up the Smart Retail Voice AI solution using Seeed's reRouter and reSpeaker XVF3800 microphone array.
1. Hardware Requirements
This guide uses Seeed's reRouter and the reSpeaker XVF3800 microphone array to demonstrate how to build a Smart Retail Voice AI solution.
| reRouter (Edge Compute) | reSpeaker XVF3800 (Audio Capture) |
|---|---|
![]() | ![]() |
Role: Processing Unit
| Role: Voice Capture
|
Hardware Setup

1.1 Get reRouter Firmware
There are two versions of the OpenWrt firmware available for reRouter:
one for global users, and another optimized for users in Mainland China.
The current firmware is based on OpenWrt 24.10.3 (Build r28872).
- Global
- Chinese Mainland
You may need a jumper cap to put the device into flashing mode.
Please refer to the reRouter flashing guide for detailed instructions.
1.2. Hardware Connection
Please connect the reRouter as follows:
- Internet Access: Connect an Ethernet cable from your router/modem to the WAN port.
- Host Connection: Connect wirelessly to the Wi-Fi hotspot named
OpenWrt-XXXXor connect your computer to the LAN port via Ethernet.

- WAN Port: Connects to the internet.
- LAN Port: Connects to your host computer for configuration.
1.3. reSpeaker XVF3800 Setup
Connect the reSpeaker XVF3800 microphone array to your host device via USB to configure.
- Linux/MacOS
- Windows
- Clone the repository and navigate to the control folder:
Depending on your device, replace <YOUR_HOST_DIR> with the folder matching your system (e.g., linux_x86_64, rpi_64bit, mac_arm64, or jetson).
git clone https://github.com/respeaker/reSpeaker_XVF3800_USB_4MIC_ARRAY.git
cd reSpeaker_XVF3800_USB_4MIC_ARRAY/host_control/<YOUR_HOST_DIR>
- Execute the configuration sequence:
Grant execution permissions and run the following three commands to initialize the device (use sudo if required on Linux):
chmod +x ./xvf_host
# 1. Clear existing configuration
sudo ./xvf_host clear_configuration 1
# 2. Enable specific audio manager setting
sudo ./xvf_host audio_mgr_op_r 8 0
# 3. Save configuration
sudo ./xvf_host save_configuration 1
- Clone the repository and navigate to the control folder:
Open Command Prompt (cmd) or PowerShell and run:
git clone https://github.com/respeaker/reSpeaker_XVF3800_USB_4MIC_ARRAY.git
cd reSpeaker_XVF3800_USB_4MIC_ARRAY\host_control\win32
- Execute the configuration sequence:
Run the following three commands to initialize the device:
# 1. Clear existing configuration
.\xvf_host.exe clear_configuration 1
# 2. Enable specific audio manager setting
.\xvf_host.exe audio_mgr_op_r 8 0
# 3. Save configuration
.\xvf_host.exe save_configuration 1
2. Software Installation
2.1. Prerequisites
Before starting, ensure the following conditions are met:
- Access: Root access to your OpenWrt device via SSH (e.g.,
ssh [email protected]). - Network: The OpenWrt device has a stable internet connection.
- Audio: The reSpeaker XVF3800 is connected to reRouter.
2.2 Accessing the Device
Once your computer is connected to the reRouter (via LAN or Wi-Fi), you can access the system using the following defaults:
- SSH Access:
By default, no password is set for the root user.
You can also use the OpenWrt web interface to configure network settings, including connecting the reRouter to your Wi-Fi or Ethernet network for internet access.
- Open a browser and visit: http://192.168.49.1
- Username: root
- Password: (none / empty by default)
Before proceeding to the installation steps below, please verify that the reRouter can access the internet (for example, run ping google.com or ping openwrt.org in the SSH terminal).
2.3 Step-by-Step Installation
Execute the following commands sequentially after establishing an SSH connection to your OpenWrt device.
Step 1: Install Docker and Dependencies
This step installs the container runtime environment and necessary tools, including the SHA-256 checksum utility for file verification.
# 1. Update the local package list
opkg update
# 2. Install Docker core components
# Note: On some systems, you might need to install these separately: dockerd, docker, containerd, runc
opkg install dockerd docker containerd runc
# 3. Install utility packages
opkg install wget-ssl unzip ca-certificates
# 4. Enable and start the Docker daemon service
/etc/init.d/dockerd enable
/etc/init.d/dockerd start
# 5. Wait for Docker to initialize (approx. 15-30 seconds)
echo "Waiting for Docker service to start..."
sleep 15
docker ps # Verify the service is running
Step 2.2: Prepare Data Directories and Configuration
Create the persistent storage directories required by the SenseCraft containers and download the default configuration file.
# 1. Create required application data directories
mkdir -p /data-iot/respeaker/recordings \
/data-iot/respeaker/models \
/data-iot/respeaker/voiceprints \
/data-iot/respeaker/logs
# 2. Navigate to the base directory
cd /data-iot/respeaker
# 3. Download the configuration file
wget -q -O config.yaml 'https://appstore.seeed-fleet.com/config.yaml'
Step 2.3: Download and Extract Models
We will download the pre-trained ASR model package (approximately 480) directly from the Seeed Studio server, verify its integrity using SHA-256, and extract it.
| File | URL |
|---|---|
models.zip | https://files.seeedstudio.com/wiki/solution/ai-sound/reRouter-firmware-backup/models.zip |
| Expected SHA-256 Hash | 7b9e7606a2ddcad56f3f72a77b16eb2c60437ae4bfc3f1423bd33db177385c9d |
Execute the following commands on the OpenWrt host via SSH:
# 1. Navigate to the base directory
cd /data-iot/respeaker
# 2. Define the Model URL
MODEL_URL="https://files.seeedstudio.com/wiki/solution/ai-sound/reRouter-firmware-backup/models.zip"
# 3. Download the large model package.
# -c allows the download to resume if interrupted.
wget -O models.zip -c "$MODEL_URL"
echo "Model package download completed. Check file size is approximately 500MB."
# 4. Verify the file integrity using SHA-256 Checksum
# The result MUST match the expected hash above.
echo "Verifying file checksum..."
shasum -a 256 models.zip
# 5. Extract the model package into the 'models' directory
unzip -o models.zip
# 6. Clean up the temporary ZIP file
rm -f models.zip
# 7. Verify the model files are present
ls -l /data-iot/respeaker/models/
Step 2.4: Configure Audio Device Permissions
The Voice Client container requires privileged access to the audio devices. Ensure the device files have appropriate permissions.
# 1. Check for audio devices
ls -l /dev/snd/
# 2. Set read/write permissions for all users on audio device nodes
chmod -R 666 /dev/snd/*
Step 2.5: Deploy Docker Containers
Define the image variables and launch the three required services: sensecraft-voice-client, sensecraft-asr-server, and watchtower.
# Define Image Variables
VOICE_CLIENT_IMAGE="sensecraft-missionpack.seeed.cn/respeaker/sensecraft-voice-client:v0.0.2"
ASR_SERVER_IMAGE="sensecraft-missionpack.seeed.cn/respeaker/sensecraft-asr-server:latest"
WATCHTOWER_IMAGE="sensecraft-missionpack.seeed.cn/respeaker/containrrr/watchtower:latest"
# 1. Pull Images
docker pull $VOICE_CLIENT_IMAGE
docker pull $ASR_SERVER_IMAGE
docker pull $WATCHTOWER_IMAGE
# 2. Stop and remove any containers with the same names
docker rm -f sensecraft-voice-client sensecraft-asr-server watchtower
# 3. Launch sensecraft-voice-client
docker run -d --name sensecraft-voice-client \
--restart=unless-stopped \
--privileged \
--device /dev/snd \
--network host \
--group-add audio \
--group-add video \
--cap-add SYS_ADMIN \
--cap-add SYS_RAWIO \
-e TZ=Asia/Shanghai \
-e AUDIO_CARD_ID=1 \
-e AUDIO_DEVICE_ID=0 \
-v /etc/wpa_supplicant:/etc/wpa_supplicant \
-v /etc/network:/etc/network \
-v /var/run/dbus:/var/run/dbus \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
-v /proc:/proc:ro \
-v /sys:/sys:ro \
-v /data-iot/respeaker/recordings:/app/recordings \
-v /data-iot/respeaker/voiceprints:/app/voiceprints \
-v /data-iot/respeaker/logs:/app/logs \
-e WIFI_INTERFACE=wlan0 \
-e WIFI_CONFIG_PATH=/etc/wpa_supplicant \
$VOICE_CLIENT_IMAGE
# 4. Launch sensecraft-asr-server (model server)
docker run -d --network host \
-v /data-iot/respeaker/models:/app/models \
-v /data-iot/respeaker/voiceprints:/app/data \
--restart=always \
--name=sensecraft-asr-server \
$ASR_SERVER_IMAGE
# 5. Launch watchtower (for continuous container monitoring and update)
docker run -d --name watchtower \
--restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
$WATCHTOWER_IMAGE \
--cleanup -i 60 sensecraft-asr-server sensecraft-voice-client
✅ 3. Verification
Check the final state of the deployment.
# Check container status (All three should show Status: Up)
docker ps
# Check the voice client logs for successful initialization and audio device detection
docker logs sensecraft-voice-client
If the logs indicate successful starting without critical errors, the SenseCraft services are successfully deployed.
Access the SenseCraft Voice Service
The SenseCraft Voice Client exposes a web interface on port 8090 of the reRouter's IP address.
You can access it via a web browser at:
http://<reRouter_IP_Address>:8090


