fix: Update VoiceAudioSink write method to accept VoiceData and extract PCM data

This commit is contained in:
Slipstream 2025-05-30 22:08:49 -06:00
parent 2706abe5f6
commit 429d416010
Signed by: slipstream
GPG Key ID: 13E498CE010AC6FD

View File

@ -124,8 +124,8 @@ class VoiceAudioSink(voice_recv.AudioSink): # Inherit from voice_recv.AudioSink
"""
return False
# Signature changed: user object directly, data is raw 48kHz stereo PCM
def write(self, user: discord.User, pcm_data_48k_stereo: bytes):
# Signature changed: user object directly, data is VoiceData
def write(self, user: discord.User, voice_data_packet: voice_recv.VoiceData):
if not webrtcvad or not self.voice_client or not user: # OpusDecoder check removed, user check added
return
@ -143,8 +143,11 @@ class VoiceAudioSink(voice_recv.AudioSink): # Inherit from voice_recv.AudioSink
entry = self.user_audio_data[user_id]
# Extract PCM data from VoiceData packet
raw_pcm_data_48k_stereo = voice_data_packet.pcm
# Convert incoming 48kHz stereo PCM to 16kHz mono PCM
pcm_data = _convert_audio_to_16khz_mono(pcm_data_48k_stereo)
pcm_data = _convert_audio_to_16khz_mono(raw_pcm_data_48k_stereo)
if not pcm_data: # Conversion failed or returned empty bytes
# print(f"Audio conversion failed for user {user_id}. Skipping frame.")
return