Начните с правильного тега - pip вместо Python.
Затем поищите вопросы про установку библиотек python, связанных с аудио, тут на ресурсе. Эти вопросы задаются с регулярностью солнечных восходов.
Nekto Nekto, ну естественно, run запускает процесс, и дальше этот процесс должен где-то вызвать то, что вам надо. Вы просто разберитесь, как именно работает ваш бот. Что делает метод run и что после этого происходит. Я не изучал конкретно ваш вариант, но большая часть их устроены похоже: run запускает внутренний цикл или что-то вроде, который считывает из псевдогенератора событий следующий элемент-событие, и если он изменился относительно предыдущего - значит произошло что-то новое, и цикл его обрабатывает, а затем считывает следующее событие. И так по кругу.
Таким образом, оно до вашего последующего вызова функции дойдёт только, если в цикле предусмотрен штатный выход. И после этого цикл не продолжится, естественно.
Илья, эээ... понимаете... "вытащить" это несколько гуманитарный термин. Рекомендую развернуть и сделать понятнее для отвечающих, что именно происходит. Мало кому охота копаться в куче кода, дебажить и вникать глубоко, тем более что тут этих ботов каждый день как блох на собаке.
Поэтому для повышения вероятности получения адекватного ответа вашему вопросу не хватает сведений, что и где именно не работает.
Вот, например, закомментированный блок с try - это то, что у вас не работает? Если да - можно оставит только его, всю или почти всю остальную портянку убрать. И написать - вот так я пытался сделать, ожидал вот это, а получил вот такое.
При размещении длинного кода рекомендую прятать его под спойлер. А лучше помещать минимально рабочий пример и конкретный вопрос к нему. Заставлять дебажить ваш код отвечающих как минимум неприлично.
Zohan1Gear, это решение вашего формального вопроса, пояснение, как сделать, чтобы появился атрибут random. Но это не стоит использовать, т.к. сам подход несколько костыльный.
Но конструкция for ver in bot.random.randint(msg.chat.id): творит какую-то лютую дичь.
msg.chat.id возвращает int?
А randint принимает на вход два int - начальное и конечное.
Поэтому даже если вы добавите в bot метод random, вы тут же получите другую ошибку: TypeError: randint() missing 1 required positional argument: 'b'.
Дальше: положим, msg.chat.id вернуло два int-а и они стали на вход randint и на выходе вы получили случайное число из этого диапазона. И дальше вы получите ошибку TypeError: 'int' object is not iterable
Т.е. for не может перебирать один-единственный int, он неперебирабельный.
В одной строке минимум 3 ошибки…