我想使用discord.py

时间:2019-01-26 11:27:01

标签: python raspberry-pi discord.py

前提·您要实现的目标

我正在树莓派上运行python源代码,并为不和谐创建了一个机器人。

我想实现类似TTSbot的功能。 该机器人获取文本聊天的内容,并使用AquesTalkPi输出声音。

然后,我以为我希望将树莓派的麦克风输入作为机器人的麦克风输入。

出现问题

在此阶段,该程序可以进行文本聊天并通过树莓派扬声器播放。我确认连接到树莓派的USB麦克风可以正常工作。 但是,我不完全了解如何使机器人连接到语音聊天以及如何使树莓派麦克风输入播放机器人。

我也阅读了一些实现相同功能的程序,但由于水平太高而无法理解。

相应的源代码

db_cog.py

import discord
from discord.ext import commands
from discord.ext.commands import Bot
from discord.voice_client import VoiceClient
import traceback
import subprocess

INITIAL_COGS = ['cog.cog']
client=discord.Client()

class Mybot(commands.Bot):
    def __init__(self,command_prefix):
        super().__init__(command_prefix)
        for cog in INITIAL_COGS:
            try:
                self.load_extension(cog)
            except Exception:
                traceback.print_exc()

    async def on_ready(self):
        print('login')
        print(self.user.name)
        print(self.user.id)
        print('------')
        #channel=client.get_channel("VOICE_CHANNEL_ID")
        voice = await client.join_voice_channel(client.get_channel("VOICE_CHANNEL_ID"))
        #voice=await client.connect(channel)

    async def on_message(self,message):
        if message.author.bot:
            return
        await self.process_commands(message)
        txtcmd="./AquesTalkPi '"+str(message.content)+"' | aplay"
        print(txtcmd)
        subprocess.Popen(txtcmd,shell=True,stdout=subprocess.PIPE)


if __name__=="__main__":
    bot=Mybot(command_prefix='$')
    bot.run('MYTOKEN')


补充信息(固件/工具版本等)

python 3.5.3 discord.py 1.0.0a Raspbian Stretch与桌面版2018年11月

0 个答案:

没有答案