From 31f10b843851de97347b3c714c37287e379ae132 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" <git@edgarpierre.fr> Date: Sat, 22 Mar 2025 23:21:07 +0100 Subject: [PATCH] Enhance VoiceBot to support AIBot integration for dynamic TTS script generation --- botbotbot/__init__.py | 2 +- botbotbot/voice.py | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/botbotbot/__init__.py b/botbotbot/__init__.py index 995bbf3..575bce4 100644 --- a/botbotbot/__init__.py +++ b/botbotbot/__init__.py @@ -59,7 +59,7 @@ def main() -> None: text_bot = TextBot(bot, wl, aibot=aibot, shuffler=shf) text_bot.init_events() - voice_bot = VoiceBot(bot, cambai, shuffler=shf) + voice_bot = VoiceBot(bot, cambai, aibot=aibot, shuffler=shf) voice_bot.init_events() @bot.listen("on_ready") diff --git a/botbotbot/voice.py b/botbotbot/voice.py index 83b3317..c3fdabe 100644 --- a/botbotbot/voice.py +++ b/botbotbot/voice.py @@ -3,6 +3,7 @@ import random import discord +from botbotbot.ai import AIBot from botbotbot.shuffle import Shuffler from botbotbot.tts import CambAI @@ -14,11 +15,13 @@ class VoiceBot: self, bot: discord.Bot, cambai: CambAI | None = None, + aibot: AIBot | None = None, shuffler: Shuffler | None = None, ) -> None: self.bot = bot self.cambai = cambai self.shf = shuffler + self.aibot = aibot def init_events(self) -> None: self.bot.add_listener(self.on_voice_state_update, "on_voice_state_update") @@ -45,13 +48,17 @@ class VoiceBot: and random.random() < 5 / 100 ): logger.info("Generating tts") - script = random.choice( - [ - "Salut la jeunesse !", - f"Salut {member.display_name}, ça va bien ?", - "Allo ? À l'huile !", - ] - ) + script = None + if self.aibot is not None and random.random() < 20 / 100: + script = self.aibot.answer("Dis un truc aléatoire et original.") + if script is None: + script = random.choice( + [ + "Salut la jeunesse !", + f"Salut {member.display_name}, ça va bien ?", + "Allo ? À l'huile !", + ] + ) source = await discord.FFmpegOpusAudio.from_probe(self.cambai.tts(script)) vo: discord.VoiceClient = await after.channel.connect()