diff options
| author | salmonik <raisersoft@proton.me> | 2026-05-20 15:37:14 +0200 |
|---|---|---|
| committer | salmonik <raisersoft@proton.me> | 2026-05-20 15:37:14 +0200 |
| commit | 03b94f61318675f1df83d384670b506a0df6e118 (patch) | |
| tree | 79c179cd43a2a419670bd85d9f966215a37f8179 /cogs/ai.py | |
| parent | Fold AudioPlaybackManager into VoiceManager + Future-based play (diff) | |
| download | senator-sperma-03b94f61318675f1df83d384670b506a0df6e118.tar.gz senator-sperma-03b94f61318675f1df83d384670b506a0df6e118.zip | |
Fix TTS and AI voice playback bugs
- tts.py _handle_voice_output: add missing voice_client.play() call
via VoiceManager.play_source() — was creating the audio source
and then doing nothing
- ai.py: use VoiceManager.play_source() instead of passing an
FFmpegPCMAudio object to play() which expects a string path
Diffstat (limited to 'cogs/ai.py')
| -rw-r--r-- | cogs/ai.py | 7 |
1 files changed, 4 insertions, 3 deletions
| @@ -9,7 +9,6 @@ from discord.ext import commands | |||
| 9 | import logging | 9 | import logging |
| 10 | import httpx | 10 | import httpx |
| 11 | from gtts import gTTS | 11 | from gtts import gTTS |
| 12 | from cogs.music import audio_playback | ||
| 13 | import io | 12 | import io |
| 14 | 13 | ||
| 15 | logger = logging.getLogger(__name__) | 14 | logger = logging.getLogger(__name__) |
| @@ -61,12 +60,14 @@ class AI(commands.Cog): | |||
| 61 | else: | 60 | else: |
| 62 | response_text = response_data["choices"][0]["message"]["content"] | 61 | response_text = response_data["choices"][0]["message"]["content"] |
| 63 | if tts: | 62 | if tts: |
| 64 | # Generate TTS | ||
| 65 | tts_obj = gTTS(text=response_text, lang='pl') | 63 | tts_obj = gTTS(text=response_text, lang='pl') |
| 66 | tts_buffer = io.BytesIO() | 64 | tts_buffer = io.BytesIO() |
| 67 | tts_obj.write_to_fp(tts_buffer) | 65 | tts_obj.write_to_fp(tts_buffer) |
| 68 | tts_buffer.seek(0) | 66 | tts_buffer.seek(0) |
| 69 | await audio_playback.AudioPlaybackManager.play(ctx, discord.FFmpegPCMAudio(tts_buffer), delete_after_play=True, interrupt=False) | 67 | from cogs.voice import get_voice_manager |
| 68 | vm = get_voice_manager(self.bot) | ||
| 69 | channel = ctx.author.voice.channel | ||
| 70 | await vm.play_source(channel, discord.FFmpegPCMAudio(tts_buffer), interrupt=False) | ||
| 70 | 71 | ||
| 71 | else: | 72 | else: |
| 72 | await ctx.send_followup(response_text) | 73 | await ctx.send_followup(response_text) |
