
Transformer un serveur Linux en assistant vocal AI local avec vos propres données
🎯 Objectif
Et si votre serveur Linux devenait un assistant vocal intelligent, capable de vous comprendre et de vous répondre — sans aucune connexion au cloud ?
C’est possible : reconnaissance vocale, LLM local et synthèse vocale, tout en local, même sur un petit serveur.
Parfait pour créer un assistant domotique auto-hébergé, 100 % privé, 100 % libre.
🧩 Technologies utilisées
Fonction | Solution locale |
---|---|
🎙️ Reconnaissance vocale (STT) | Whisper en mode CPU |
🧠 Réponse IA (LLM) | Ollama ou LM Studio avec Mistral/TinyLlama |
🔊 Synthèse vocale (TTS) | pyttsx3 (offline) |
🔁 Interface | Script Python (terminal ou micro + haut-parleur) |
🛠️ Étape 1 – Installer les dépendances
📦 Installer Python et les bibliothèques
sudo apt update
sudo apt install python3 python3-pip portaudio19-dev ffmpeg
pip3 install openai-whisper speechrecognition pyttsx3 ollama
⚙️ Installer Ollama (LLM local)
Suivez les instructions sur : https://ollama.com/download
Exemple pour installer Mistral :
ollama run mistral
🎙️ Étape 2 – Script Python minimaliste
Créez un fichier assistant_local.py
:
import speech_recognition as sr
import pyttsx3
import subprocess
import whisper
# Chargement de Whisper en mode CPU
model = whisper.load_model("base")
# Initialiser la synthèse vocale
engine = pyttsx3.init()
engine.setProperty('rate', 170)
def speak(text):
print(f"🗣️ Assistant : {text}")
engine.say(text)
engine.runAndWait()
def transcribe_audio():
recognizer = sr.Recognizer()
with sr.Microphone() as source:
print("🎤 Parlez...")
audio = recognizer.listen(source)
with open("input.wav", "wb") as f:
f.write(audio.get_wav_data())
result = model.transcribe("input.wav")
return result["text"]
def ask_llm(prompt):
print(f"🧠 Vous : {prompt}")
result = subprocess.run(
["ollama", "run", "mistral", prompt],
stdout=subprocess.PIPE,
text=True
)
return result.stdout.strip()
# Boucle principale
while True:
try:
question = transcribe_audio()
if question.lower() in ["stop", "quit", "exit"]:
break
response = ask_llm(question)
speak(response)
except Exception as e:
print(f"Erreur : {e}")
speak("Désolé, une erreur est survenue.")
🚀 Étape 3 – Lancer l’assistant
Dans le terminal :
python3 assistant_local.py
Parlez dans votre micro, et l’assistant vous répond à voix haute avec un LLM local.
💡 Astuce bonus : données personnalisées
Vous pouvez améliorer les réponses avec vos propres documents en connectant un moteur RAG local comme LlamaIndex ou PrivateGPT.
Par exemple :
“Que dit mon fichier
facture-client-avril.pdf
?”
…et l’IA vous le lira à haute voix. 🧾🔊
🔒 Respect de la vie privée
✔ Aucun cloud utilisé
✔ Données vocales traitées localement
✔ Parfait pour un assistant domotique autonome, un serveur vocal en entreprise ou un usage perso.
🧭 Pour aller plus loin
- Ajouter un hotword (ex: “Hey Linux”) avec
snowboy
ouporcupine
- Intégrer à Home Assistant ou Domoticz
- Ajouter une base de données de connaissances privée (docs, wiki, etc.)
🏁 Conclusion
Créer un assistant vocal intelligent, local et souverain est aujourd’hui à la portée de n’importe quel serveur Linux.
Pas besoin de cloud, de GPU ou d’abonnement : juste Python, Whisper, Ollama, et un peu de magie open source.