2026-04-07 22:06:36 +02:00
2026-04-07 22:06:36 +02:00
2026-04-07 22:06:36 +02:00
2026-04-07 22:06:36 +02:00
2026-04-07 22:06:36 +02:00
2026-04-07 22:06:19 +02:00
2026-04-07 22:06:36 +02:00
2026-04-07 22:06:36 +02:00
2026-04-07 22:06:19 +02:00

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
  • Lecteur audio installé :
    • macOS : afplay (inclus)
    • Linux : mpg123sudo apt install mpg123

Installation

# 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

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 :

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 :

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 :

mcp_servers:
  - name: traveller-map
    command: node
    args: ["mcp_servers/traveller_map/dist/index.js"]
Description
No description provided
Readme 140 KiB
Languages
TypeScript 56.7%
Python 43.3%