Le blog du jour
Mon voicechat
11 juillet 2025
Trois étapes sont nécessaires pour pouvoir discuter avec son laptop :
Pour chacune de ces étapes l’IA est utilisée, avec des modèles créés et entraînés pour la résolution de leur tâche spécifique.
Plusieurs modèles sont disponibles sur internet, on se propose ici d’utiliser fastrtc pour réaliser notre chatbot.
Fastrtc est une bibliothèque de communication pour Python utile pour gérer les stream audio et vidéo.
On l’utilise ici pour prendre en compte le stream audio que l’on récupère via le browser et déclencher le processus de réponse. Qui plus est, la bibliothèque dispose de modèles tts et stt.
Un script permettant de créer un voice chat est disponible. Il permet de discuter avec une IA basée sur Llama 3.
Le modèle est accessible via internet sur sambanova.
Sambanova cloud pour l’IA permet d'accéder à divers modèles de langages. Il est nécessaire pour cela de s’inscrire et de créer une clé. Il est possible de payer pour accéder aux IA, mais ce n’est pas obligatoire dans un premier temps.
Il est nécessaire de renseigner la clé avant de lancer le script :
export SAMBANOVA_API_KEY=<key>
Après avoir recopié et mis à jour avec un modèle de sambanova disponible le script voicechat de fastrc, il est nécessaire d’installer fastrc.
Il suffit alors de lancer le script et le voicechat se lance et est accessible via le browser :
$ python voicechatfastrc.py
INFO: Warming up STT model.
INFO: STT model warmed up.
INFO: Warming up VAD model.
INFO: VAD model warmed up.
* Running on local URL: http://127.0.0.1:7860
* To create a public link, set `share=True` in `launch()`.

La discussion se fait en anglais, ce n’est pas nécessaire de poser des questions.
Llamafile permet d'exécuter localement le modèle de langage de manière simple.
Il suffit de récupérer le fichier llmafile du modèle chez huggingface :
Ce fichier est un exécutable qui peut être lancé en mode chat, cli ou serveur. Pour le voicechat local on le lance en mode serveur :
$ ./Llama-3.2-3B-Instruct.Q6_K.llamafile --server
Le voicechat local fonctionne de la même manière que le voicechat, a ceci près que les requêtes sont envoyées au serveur créé par llmafile.
Le script python du voicechat local diffère du script du voicechat en la description du modèle pour le module openai :
import os
from fastrtc import (ReplyOnPause, Stream, get_stt_model, get_tts_model)
from openai import OpenAI
bot_client = OpenAI(
base_url="http://127.0.0.1:8080/v1",
api_key = "sk-no-key-required"
)
stt_model = get_stt_model()
tts_model = get_tts_model()
def echo(audio):
prompt = stt_model.stt(audio)
print(prompt)
response = bot_client.chat.completions.create(
model="LLaMA_CPP",
messages =[
{"role": "system", "content": "You are ChatGPT, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."},
{"role": "user", "content": prompt} ]
)
prompt = response.choices[0].message.content
for audio_chunk in tts_model.stream_tts_sync(prompt):
yield audio_chunk
stream = Stream(ReplyOnPause(echo), modality="audio", mode="send-receive")
stream.ui.launch()
Le voicechat est ainsi fonctionnel sans connexion internet, le laptop prenant à sa charge le travail requis pour le modèle de langage.
© 2018 isttechservice.fr
