Как сделать чтобы ответ пользователю был только после того как он ответит на голосовое сообщение!

Пример кода предоставлю ниже, код совсем отказывается ждать ответа на голосовое, а попросту шлёт текстовое фактически сразу, хотя пользователь еще не давал ответ.

# Проверяем количество сообщений от себя
        my_id = (await client.get_me()).id
        my_messages_count = 0
        for msg in dialog_history:
            if msg.from_id is not None:
                my_messages_count += int(msg.from_id.user_id == my_id)

        # Если еще не общались с человеком - отправляем голосовое сообщение
        if my_messages_count == 0 and get_user_progress(di.entity.id) == 0:
            await client.send_read_acknowledge(di.entity)
            await client.send_file(di.entity, "voices\\" + random.choice(voice_msgs), voice_note=True)
            print("Отправлено голосовое сообщение!")
            set_user_progress(di.entity.id, 1)

        # Если уже есть 1 мое сообщение, но последнее сообщение - не моё, ждем ответа пользователя
        elif my_messages_count == 1 and get_user_progress(di.entity.id) == 1:
            __msg = (await client.get_messages(di.entity, limit=5))[0]
            if __msg.from_id != my_id:
                await client.send_read_acknowledge(di.entity)

                # Получаем ID последнего сообщения в диалоге
                last_msg_id = __msg.id

                # Ждем ответа пользователя
                while True:
                    response = await client.get_messages(di.entity, limit=1, reverse=True)

                    if response and response[0].id != last_msg_id:
                        # Пользователь ответил, отправляем текстовое сообщение
                        print("Пользователь ответил, отправляем текстовое сообщение")
                        await client.send_message(di.entity, random.choice(text_msgs))
                        print("Отправлено текстовое сообщение!")
                        set_user_progress(di.entity.id, 2)
                        await asyncio.sleep(random.randint(30, 120))
                        break
                    else:
                        await asyncio.sleep(30)

Ответы (0 шт):