Skip to main content

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)
reRouter CM4reSpeaker XVF3800

Role: Processing Unit

Technical Specifications:

  • CPU: Quad-Core Processor
  • RAM: 4GB (Minimum Requirement)
  • Storage: 32GB eMMC
  • OS: OpenWrt 24.10.3 (Build r28872)
*Note: Performance below these specs has not been validated.

Role: Voice Capture

Technical Specifications:

  • Model: XVF3800 4-Mic Array
  • Firmware: v2.0.5
  • Configuration: 1-Channel (Processed Audio)
  • Features: Noise Suppression, AEC, Beamforming

Hardware Setup

product-rerouter-respeaker

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).

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-XXXX or connect your computer to the LAN port via Ethernet.
reRouter hardware connections: LAN port connects to your host computer for configuration; WAN port connects to the internet.
  • 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.

  1. 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>
  1. 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

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.

Note

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)
Important

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.

FileURL
models.ziphttps://files.seeedstudio.com/wiki/solution/ai-sound/reRouter-firmware-backup/models.zip
Expected SHA-256 Hash7b9e7606a2ddcad56f3f72a77b16eb2c60437ae4bfc3f1423bd33db177385c9d

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
Loading Comments...