Подвисает звук

Я реализовал дискорд бота с функцией проигрывания музыки:

ydl_opts = {
    'format': 'bestaudio/best',
    'postprocessors': [{
        'key': 'FFmpegExtractAudio',
        'preferredcodec': 'mp3',
        'preferredquality': '192',
    }],
    'outtmpl': '1.%(etx)s',
    'quiet': False
}

@bot.command()
async def play(ctx, url):
    try:
        os.remove('1.mp3')
    except:
        pass
    channel = ctx.message.author.voice.channel
    voice = get(bot.voice_clients, guild=ctx.guild)
    if voice and voice.is_connected():
        await voice.move_to(channel)
    else:
        voice = await channel.connect()
    # ctx.message.author.voice.channel.connect()
    with youtube_dl.YoutubeDL(ydl_opts) as ydl:
        ydl.download([str(url)])
    await ctx.send('downloading...')
    time.sleep(20)
    voice.play(discord.FFmpegPCMAudio('1.mp3'))

Но почему-то все скаченные треки подвисают, хотя вроде и поставил задержку. В чем может быть проблема?

Подвисают как именно?

Задержка вряд ли поможет, ydl.download вроде же не асинхронный, когда оно завершится, тогда по идее и скачивание уже завершено.
И поэтому

должно быть до, а не после. После это уже downloaded.

Миллисекундные задержки.
Треки которые у меня были уже скачаны воспроизводятся нормально