Este proyecto reúne visión de estanterías, estado de inventario, interacción por voz y análisis de conversaciones de venta en una única interfaz web ejecutada en reComputer RK3588. Puede conectar una reCamera y un ReSpeaker XVF3800 para realizar inferencia visual RKNN, reconocimiento de voz, separación de hablantes, procesamiento con un modelo de lenguaje local y síntesis de voz en el dispositivo.
Una vez preparados los recursos de ejecución, el vídeo, el audio, el inventario y los resultados generados permanecen localmente, sin llamadas a APIs en la nube durante la demostración.
Código fuente: Seeed-Projects/Lab-Prooject-RK

Funciones principales
- Una interfaz Vue y un servicio FastAPI para gestionar tres experiencias.
- Detección de objetos RKNN acelerada por la NPU del RK3588.
- Vídeo detectado y estado de producto en tiempo real desde reCamera.
- Captura de voz de campo lejano con ReSpeaker XVF3800.
- Qwen3-ASR, separación de hablantes, RKLLM y Piper TTS locales.
- Cambio de demostración con estado visible del hardware, servicios y canalizaciones.
- Respuestas de inventario calculadas mediante lógica determinista, no inventadas por el LLM.
Tres experiencias
1. Estantería inteligente de una cámara y asistente de voz

La reCamera entrega al reComputer un flujo RTSP con detecciones y el estado actualizado de los productos. El personal puede preguntar:
- ¿Cuántas botellas quedan en la estantería?
- ¿Cuántos tipos de producto hay?
- ¿Qué productos faltan?
La respuesta se muestra como datos estructurados y se reproduce por el altavoz conectado al reComputer.
El LLM solo identifica la intención. Los nombres y las cantidades se calculan mediante código a partir de un estado reciente de reCamera. Si el estado falta o está obsoleto, el sistema indica que el inventario no está disponible.
2. Supervisión de cuatro flujos
Cuatro procesos independientes de captura e inferencia trabajan simultáneamente en el RK3588. El panel muestra:
- cuatro vídeos anotados;
- velocidades de captura, inferencia y visualización por flujo;
- estado de los workers de la NPU;
- una línea temporal compartida de reposición;
- cambios de inventario y alertas de reposición.
El repositorio incluye dos modelos RKNN FP16, el wheel arm64 de RKNN Lite 2.3.2, un vídeo de ejemplo y la configuración de la demostración.
Las regiones de estantería y las reglas de evento están ajustadas al vídeo incluido. Hay que recalibrar las ROI y la lógica al cambiar la cámara o la estantería.
3. Análisis de conversaciones de venta

El ReSpeaker XVF3800 captura la conversación y la procesa localmente:
- Silero VAD detecta los segmentos de voz.
- CAM++ extrae características y distingue a los hablantes.
- Qwen3-ASR genera la transcripción en tiempo real.
- RKLLM genera un resumen, la intención del cliente y la siguiente acción recomendada.
Los resultados se envían continuamente al navegador. No se admite la separación de voces solapadas, por lo que la precisión puede disminuir cuando varias personas hablan a la vez.
Arquitectura del sistema
| Componente | Conexión predeterminada | Función |
|---|---|---|
| Navegador → reComputer | http://<RK3588-IP>:8080 | UI, REST API y eventos WebSocket |
| reCamera → reComputer | RTSP :8554, WebSocket :9002 | Vídeo detectado y estado de productos |
| ReSpeaker → reComputer | USB Audio, tarjeta ALSA con Array | Captura de voz de campo lejano |
| reComputer → altavoz | Salida ES8311 de 3,5 mm | Voz Piper |
| ASR / RKLLM local | :8621 / :8001 | Reconocimiento, intención y resumen |
Requisitos de hardware
| Hardware | Requisito |
|---|---|
| Equipo de borde | reComputer RK3588, mínimo recomendado de 8 GB |
| Cámara | reCamera accesible por red USB o Ethernet |
| Micrófono | Matriz USB ReSpeaker XVF3800 |
| Audio | Auriculares o altavoz activo en la salida ES8311 de 3,5 mm |
| Almacenamiento | Al menos 12 GB para el paquete de voz sin conexión |
| Pantalla | Navegador local o dispositivo de la misma LAN |
Para probar únicamente la supervisión de cuatro flujos se pueden omitir reCamera, ReSpeaker y los servicios de voz.
Requisitos de software
- Debian 12 arm64
- Controlador RKNPU y RKNN Runtime funcionales
- Python 3.11 y
python3-venv - Node.js 18 o posterior
curlyalsa-utils- Docker y Docker Compose para ASR y RKLLM
- go2rtc opcional; se usa MJPEG como alternativa
Inicio rápido
1. Obtener el código
git clone https://github.com/Seeed-Projects/Lab-Prooject-RK.git
cd Lab-Prooject-RK
cp .env.example .envRevise .env, especialmente la dirección de reCamera, la tarjeta ALSA, la salida de audio y los endpoints locales.
2. Preparar la aplicación
./scripts/bootstrap.sh
./scripts/verify.shbootstrap.sh crea los entornos del backend y RKNN, instala RKNN Lite, compila el frontend Vue y descarga recursos Piper verificados. Se necesita Internet si las dependencias no están en caché.
3. Opcional: preparar voz
Este paso puede omitirse para la demostración multicanal. El asistente de inventario y el análisis de conversaciones requieren recursos adicionales de ASR y RKLLM.
Coloque el paquete sin conexión en:
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. Iniciar el centro
./scripts/start.sh
./scripts/status.shAbra http://<RK3588-IP>:8080 desde un navegador de la misma red. Para detenerlo:
./scripts/stop.shValidación y estado
./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/healthDocumentación de la API: http://<RK3588-IP>:8080/docs
Limitaciones conocidas
- La experiencia de voz completa requiere recursos ASR, RKLLM y modelos que no están en Git.
bootstrap.shnecesita red si las dependencias no están en caché.- Las ROI y algunas reglas de la demostración multicanal están ajustadas al vídeo incluido.
- Las respuestas de inventario requieren un estado reciente de reCamera y no estiman cantidades solo desde el vídeo.
- No se admite voz solapada.
- La UI y WebSocket no incluyen autenticación para Internet; úselos en una LAN de confianza o detrás de un proxy seguro.
Recursos
El código de integración usa la licencia Apache-2.0. Los modelos, medios de ejemplo, wheels de proveedores y servicios de terceros conservan sus propias licencias.