# Arioch — Assistant vocal (Mistral Large + Voxtral TTS) Assistant vocal CLI personnalisé utilisant **Mistral Large** pour les réponses et **Voxtral TTS** pour la synthèse vocale. ## Prérequis - Python 3.10+ - Une clé API Mistral : [console.mistral.ai](https://console.mistral.ai) - Lecteur audio installé : - **macOS** : `afplay` (inclus) - **Linux** : `mpg123` → `sudo apt install mpg123` ## Installation ```bash # Cloner et entrer dans le projet cd arioch-assistant # Créer un environnement virtuel python -m venv .venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows # Installer les dépendances pip install -r requirements.txt # Configurer l'environnement cp .env.example .env # Éditer .env et renseigner MISTRAL_API_KEY ``` ## Utilisation ```bash python main.py ``` ### Commandes disponibles | Commande | Description | |----------|-------------| | `exit` / `quit` | Quitter l'assistant | | `reset` | Effacer l'historique de conversation | | `voice ` | Changer la voix Voxtral (voice_id) | | `voice clear` | Revenir à la voix par défaut | | `help` | Afficher l'aide | ## Phase 2 : Voix personnalisée (clonage) Enregistre ta propre voix (ou toute autre) avec un fichier audio de 2–3 secondes : ```bash python scripts/register_voice.py --name "Ma voix" --audio sample.mp3 --language fr ``` L'ID retourné peut être ajouté dans `.env` : ``` VOICE_ID= ``` ## Architecture ``` assistant/ ├── config.py # Variables d'environnement et constantes ├── llm.py # Chat streaming avec Mistral Large (tool-call loop) ├── tts.py # Synthèse vocale Voxtral TTS ├── audio.py # Lecture audio cross-platform ├── cli.py # Boucle REPL interactive + pipeline TTS streaming ├── mcp_client.py # Gestionnaire de serveurs MCP (tool calling) └── profile.py # Chargement des profils de personnalité YAML mcp_servers/ └── traveller_map/ # Serveur MCP Traveller Map (sources TypeScript intégrées) ├── src/ # Sources TypeScript ├── dist/ # Build compilé (node dist/index.js) └── package.json profiles/ └── traveller_scout.yaml # Profil avec mcp_servers configuré scripts/ └── register_voice.py # Enregistrement d'une voix clonée main.py # Point d'entrée ``` ## Serveurs MCP embarqués Les serveurs MCP sont dans `mcp_servers/`. Pour (re)compiler un serveur : ```bash cd mcp_servers/traveller_map npm install # première fois seulement npm run build ``` Les serveurs sont déclarés dans le profil YAML avec un chemin **relatif** à la racine du projet : ```yaml mcp_servers: - name: traveller-map command: node args: ["mcp_servers/traveller_map/dist/index.js"] ```