Add gitignor
This commit is contained in:
101
README.md
Normal file
101
README.md
Normal 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 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=<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"]
|
||||
```
|
||||
Reference in New Issue
Block a user