Add gitignor

This commit is contained in:
2026-04-07 22:06:36 +02:00
parent 49802d89d5
commit 5703cf5871
98 changed files with 5329 additions and 72 deletions

101
README.md Normal file
View File

@@ -0,0 +1,101 @@
# 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 <id>` | 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 23 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=<id_retourné>
```
## 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"]
```