Skip to content
w4coderPublic

About

Open-source, local-first multimodal voice assistant for ROS 2 with offline speech recognition, Piper TTS, Ollama, vision, Markdown memory, interruptions, and a Next.js UI.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

MIRA — Local AI Voice Assistant for ROS 2

MIRA is an open-source, local-first multimodal assistant built with ROS 2. It combines offline speech recognition, interruptible Pocket TTS, Ollama, opt-in vision, auditable Markdown memory, and a real-time Next.js interface.

Assistant vocal local et interrompable construit sur ROS 2, avec mémoire Markdown, vision volontaire et interface Next.js en temps réel.

Interface Mira pendant une conversation

Installation en une commande

Sur Ubuntu 22.04 x86-64 ou ARM64 :

curl -fsSL https://raw.githubusercontent.com/w4coder/mira-ros2/main/install.sh | bash

L'installateur récupère ROS 2 Humble, un Node.js isolé, les dépendances Python/JavaScript, construit le workspace et précharge Pocket TTS avec la voix Estelle. Il ne demande aucune clé cloud. Le dépôt GitHub cible peut être remplacé ainsi :

curl -fsSL URL_INSTALL_SH | MIRA_REPOSITORY=https://github.com/organisation/depot.git bash

Puis :

mira doctor
mira start

Ouvrez http://localhost:3000. La première initialisation des modèles peut prendre plusieurs minutes. Pour installer depuis un clone existant, une seule commande suffit également : ./install.sh.

Découvrir sans robot ni GPU

mira demo

Le mode démo utilise exclusivement un échange fictif. Il n'ouvre ni micro, ni caméra, ni mémoire personnelle et ne contacte aucun fournisseur d'IA.

Aperçu animé du cas d'utilisation MIRA

Lire la démonstration avec la voix Pocket TTS Estelle de MIRA (MP4 H.264/AAC)

Capacités

  • capture micro, mot de réveil et transcription locale ;
  • orchestration de tours, interruptions et tâches prioritaires ;
  • cognition via un modèle Ollama configurable ;
  • synthèse Pocket TTS locale, progressive et interrompable, voix Estelle ;
  • mémoire auditable en Markdown avec index Chroma reconstructible ;
  • caméra et partage d'écran activés uniquement par l'utilisateur ;
  • état, conversation, mémoire et contrôles dans une interface WebSocket/Next.js.

Architecture

micro/caméra → nœuds de perception → orchestrateur → cognition/mémoire
                                             ↓
interface Next.js ↔ bridge WebSocket local ← ROS 2 → synthèse vocale

La vue détaillée et les contrats sont décrits dans docs/architecture.md.

Configuration

Copiez .env.example vers .env pour modifier les valeurs locales. Les réglages essentiels sont :

Variable Défaut Usage
MIRA_DATA_DIR ~/.local/share/mira mémoire, index, modèles et caches
MIRA_WS_HOST 127.0.0.1 adresse du bridge
MIRA_WS_PORT 8765 port du bridge
MIRA_WS_TOKEN vide en local obligatoire hors boucle locale
MIRA_POCKET_LANGUAGE french_24l modèle de langue Pocket TTS
MIRA_POCKET_VOICE estelle voix Pocket TTS prédéfinie
MIRA_POCKET_THREADS 2 threads CPU consacrés à la synthèse
MIRA_STT_DEVICE cpu cpu ou cuda
MIRA_DIARIZATION_DEVICE cpu périphérique PyTorch

Après une modification de NEXT_PUBLIC_ROBOT_WS_*, exécutez mira build : ces variables sont intégrées au bundle navigateur pendant la compilation Next.js.

Le parcours de base est CPU et local. CUDA et pyannote restent optionnels et ont leurs propres prérequis ; consultez THIRD_PARTY.md.

Confidentialité et sécurité

Les dossiers memory_vault/, memory_index/, .runtime/, les modèles, les médias et .env sont ignorés par Git. Le bridge écoute uniquement sur 127.0.0.1 par défaut. N'exposez jamais directement le port 8765 sur Internet. Consultez SECURITY.md et lancez ce contrôle avant publication :

mira check

Développement

npm --prefix ui-next run lint
npm --prefix ui-next run build
source /opt/ros/humble/setup.bash
source install/setup.bash
colcon test --event-handlers console_direct+

Les instructions de contribution sont dans CONTRIBUTING.md. Les cas d'utilisation et la reproduction des médias sont dans docs/use-cases.md.

Statut et limites

Mira est un projet expérimental : ce n'est ni un dispositif médical, ni un système de sécurité, ni un contrôleur robotique certifié. L'installation automatisée cible Ubuntu 22.04 et ROS 2 Humble. Le fonctionnement des périphériques audio/vidéo dépend de la machine et doit être validé localement.

Licence

Le code est sous Apache License 2.0. Les modèles, voix et services tiers restent soumis à leurs propres licences et ne sont pas incorporés au dépôt.

About

Open-source, local-first multimodal voice assistant for ROS 2 with offline speech recognition, Piper TTS, Ollama, vision, Markdown memory, interruptions, and a Next.js UI.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages