Discord.py Воспроизвести голос из PyAudio - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь воспроизвести живое аудио с микрофона в моем боте Discord, но не могу преобразовать поток из PyAudio в приемлемый формат, который может воспроизводить Discord. Я пробовал:

async def play_audio_in_voice():
    input_stream = p.open(format = FORMAT,
                channels = CHANNELS,
                rate = RATE,
                input = True,
                frames_per_buffer = CHUNK)
    while True:
        await voice_commands.play_voice(input_stream)

async def play_voice(self, input_stream):
        guild = #got guild here
        if guild.voice_client:
            data = input_stream.read(CHUNK, exception_on_overflow = False)
            voice_client = guild.voice_client
            voice_client.send_audio_packet(data)

и

async def play_voice(self, input_stream):
        guild = #got guild here
        if guild.voice_client:
            data = input_stream.read(CHUNK, exception_on_overflow = False)
            stream = await discord.FFmpegPCMAudio(data)
            voice_client = guild.voice_client
            voice_client.send_audio_packet(data)

В первом коде я получаю:

File "D:\Program Files\lib\site-packages\discord\voice_client.py", line 454, in send_audio_packet
    encoded_data = self.encoder.encode(data, self.encoder.SAMPLES_PER_FRAME)
AttributeError: 'NoneType' object has no attribute 'encode'

Я знаю, что я получать гильдию каждый раз, когда я вызываю функцию здесь, я исправлю это сейчас :)

...