Ce projet réunit vision des rayons, état des stocks, interaction vocale et analyse des conversations de vente dans une seule interface Web exécutée sur reComputer RK3588. Une reCamera et un ReSpeaker XVF3800 permettent d'effectuer localement l'inférence RKNN, la reconnaissance vocale, la distinction des locuteurs, le traitement par LLM et la synthèse vocale.
Une fois les ressources préparées, la vidéo, l'audio, les données de stock et les résultats restent sur l'appareil, sans appel à une API cloud pendant la démonstration.
Code source : Seeed-Projects/Lab-Prooject-RK

Points forts
- Une interface Vue et un service FastAPI pour trois expériences.
- Détection d'objets RKNN accélérée par le NPU RK3588.
- Vidéo détectée et état des produits fournis par reCamera.
- Capture vocale distante avec ReSpeaker XVF3800.
- Qwen3-ASR, distinction des locuteurs, RKLLM et Piper TTS en local.
- État du matériel, des services et des pipelines visible dans l'interface.
- Quantités calculées par une logique déterministe plutôt que devinées par le LLM.
Trois expériences
1. Étagère intelligente à une caméra et assistant vocal

La reCamera fournit au reComputer un flux RTSP annoté et l'état actualisé des produits. Le personnel peut demander :
- Combien de bouteilles restent sur le rayon ?
- Combien de types de produits sont présents ?
- Quels produits sont en rupture ?
La réponse structurée s'affiche dans la page et peut être lue par le haut-parleur connecté au reComputer.
Le LLM identifie uniquement l'intention. Les noms et quantités sont calculés à partir d'un état reCamera récent. Si cet état manque ou est trop ancien, l'application indique que l'inventaire est indisponible.
2. Surveillance de quatre flux
Quatre processus indépendants de capture et d'inférence s'exécutent simultanément sur le RK3588. Le tableau de bord affiche :
- quatre vidéos annotées ;
- les FPS de capture, d'inférence et d'affichage ;
- l'état des workers NPU ;
- une chronologie partagée des événements de réapprovisionnement ;
- les variations de stock et les alertes.
Le dépôt contient deux modèles RKNN FP16, le wheel arm64 RKNN Lite 2.3.2, une vidéo d'exemple et la configuration de démonstration.
Les régions et règles sont réglées pour la vidéo fournie. Recalibrez les ROI et la logique métier si la caméra ou le rayon change.
3. Analyse des conversations de vente

Le ReSpeaker XVF3800 capture la conversation, puis le pipeline local effectue :
- la détection des segments vocaux avec Silero VAD ;
- l'extraction des caractéristiques et la distinction des locuteurs avec CAM++ ;
- la transcription en temps réel avec Qwen3-ASR ;
- le résumé, l'intention client et l'action recommandée avec RKLLM.
Les résultats sont envoyés en continu au navigateur. Les voix qui se chevauchent ne sont pas séparées et peuvent réduire la précision.
Architecture du système
| Composant | Connexion par défaut | Rôle |
|---|---|---|
| Navigateur → reComputer | http://<RK3588-IP>:8080 | UI, REST API et événements WebSocket |
| reCamera → reComputer | RTSP :8554, WebSocket :9002 | Vidéo détectée et état produit |
| ReSpeaker → reComputer | USB Audio, carte ALSA contenant Array | Capture vocale distante |
| reComputer → haut-parleur | Sortie ES8311 3,5 mm | Lecture Piper |
| ASR / RKLLM local | :8621 / :8001 | Reconnaissance, intention et résumé |
Matériel requis
| Matériel | Exigence |
|---|---|
| Ordinateur edge | reComputer RK3588, 8 Go minimum recommandés |
| Caméra | reCamera accessible par réseau USB ou Ethernet |
| Microphone | Réseau USB ReSpeaker XVF3800 |
| Audio | Casque ou enceinte amplifiée sur la sortie ES8311 3,5 mm |
| Stockage | Au moins 12 Go pour les ressources vocales hors ligne |
| Affichage | Navigateur local ou appareil sur le même LAN |
Pour tester uniquement la surveillance à quatre flux, reCamera, ReSpeaker et les services vocaux peuvent être omis.
Logiciels requis
- Debian 12 arm64
- Pilote RKNPU et RKNN Runtime fonctionnels
- Python 3.11 et
python3-venv - Node.js 18 ou plus récent
curletalsa-utils- Docker et Docker Compose pour ASR et RKLLM
- go2rtc facultatif ; MJPEG sert de solution de repli
Démarrage rapide
1. Récupérer le code
git clone https://github.com/Seeed-Projects/Lab-Prooject-RK.git
cd Lab-Prooject-RK
cp .env.example .envAdaptez .env, notamment l'adresse reCamera, la carte ALSA, la sortie audio et les endpoints locaux.
2. Préparer l'application
./scripts/bootstrap.sh
./scripts/verify.shbootstrap.sh crée les environnements backend et RKNN, installe RKNN Lite, construit le frontend Vue et télécharge les ressources Piper vérifiées. Une connexion Internet est nécessaire si elles ne sont pas en cache.
3. Facultatif : préparer la voix
Cette étape peut être ignorée pour la démo multicanal. L'assistant d'inventaire et l'analyse des conversations nécessitent des ressources ASR et RKLLM supplémentaires.
Placez le bundle hors ligne dans :
services/voice-pipeline/deploy/bundle/cd services/voice-pipeline
./deploy/restore.sh ./deploy/bundle
docker compose -f deploy/docker-compose.asr-realtime.yml up -d
docker compose -f deploy/docker-compose.llm-summary.yml up -d
./bootstrap.sh
cd ../..4. Lancer le centre
./scripts/start.sh
./scripts/status.shOuvrez http://<RK3588-IP>:8080 depuis un navigateur du même réseau. Pour arrêter :
./scripts/stop.shValidation et état
./scripts/verify.shcurl -fsS http://127.0.0.1:8080/api/v1/health
curl -fsS http://127.0.0.1:8080/api/v1/hardware/status
curl -fsS http://127.0.0.1:8080/api/v1/showcase/status
curl -fsS http://127.0.0.1:8621/health
curl -fsS http://127.0.0.1:8001/healthDocumentation de l'API : http://<RK3588-IP>:8080/docs
Limites connues
- L'expérience vocale complète exige des ressources ASR, RKLLM et modèles non incluses dans Git.
bootstrap.shnécessite le réseau si les dépendances ne sont pas en cache.- Les ROI et certaines règles multicanal sont configurées pour la vidéo fournie.
- Les réponses de stock nécessitent un état reCamera récent et ne déduisent pas les quantités de la seule vidéo.
- Les voix superposées ne sont pas prises en charge.
- L'UI et WebSocket n'ont pas d'authentification publique ; utilisez un LAN de confiance ou un proxy sécurisé.
Ressources
Le code d'intégration est sous licence Apache-2.0. Les modèles, médias, wheels fournisseurs et services amont conservent leurs licences respectives.