Можно ли запрограммировать автоматический голос для музыкального бота Discord?
Итак, название в основном объясняет мой вопрос для моего бота Discord в краткой форме. В частности, если музыкальный трек стоит первым в очереди и не соответствует рекомендациям, настроенным гильдией, например, содержит ненормативную лексику, у аудио есть утвержденная жалоба о нарушении авторских прав, отправленная нам через веб-сайт бота первоначальным издателем, запрещающим прослушивание. на аудио или это крикун, он автоматически скажет следующее сообщение:
Текущая музыка, которую планируется воспроизвести в это время, слишком интенсивна по громкости или превышает пределы частоты для высоты тона. Переход к следующей музыке в очереди.
Текущая музыка, которую планируется воспроизвести в это время, помечена как содержащая ненормативную лексику и не соответствует рекомендациям, настроенным гильдией. Переход к следующей музыке в очереди.
Текущая музыка, которую планируется воспроизвести в это время, имеет жалобу на нарушение авторских прав, которая указывает, что первоначальный издатель ограничивает прослушивание аудио. Переход к следующей музыке в очереди.
Можно ли запрограммировать автоматический голос для бота Discord?
Заранее спасибо.
1 ответ
Я помогу вам реализовать идею пользователя Amadan в discord.py, сначала вам нужно будет установить google text to speech python api:
pip install gtts
Этот ответ будет предполагать, что вы не используете ветвь перезаписи discord.py.
import os
import discord
from gtts import gTTS
if not discord.opus.is_loaded():
# or libopus.so on linux in the current directory
# you should replace this with the location the
# opus library is located in and with the proper filename.
discord.opus.load_opus('opus')
if not os.path.exists('message1.mp3'):
tts = gTTS("The current music scheduled to play at this time is too intense in volume or exceeds "
"the frequency limits for pitch. Skipping to next music in queue.")
with open('message1.mp3', 'wb') as f:
tts.write_to_fp(f)
if not os.path.exists('message2.mp3'):
tts = gTTS("The current music scheduled to play at this time has been marked for containing profane"
" language and does not comply with the guild-configured guidelines. "
"Skipping to next music in queue.")
with open('message2.mp3', 'wb') as f:
tts.write_to_fp(f)
if not os.path.exists('message3.mp3'):
tts = gTTS("The current music scheduled to play at this time has a copyright infringement complaint "
"which indicates that the original publisher restricts listening to the audio. "
"Skipping to next music in queue.")
with open('message3.mp3', 'wb') as f:
tts.write_to_fp(f)
@bot.command(pass_context=True)
async def play(ctx, num):
vc = ctx.author.voice.voice_channel
voice = await bot.join_voice_channel(vc)
player = voice.create_ffmpeg_player('message{}.mp3'.format(num))
player.start()
Теперь в раздоре, когда вы находитесь в голосовом канале и введите <prefix>play <num>
где префикс - это префикс бота, а num (1-3) - индекс сообщения, которое вы хотите воспроизвести, бот скажет сообщение.