При обработки и экспорте аудио длиной 2:47, выводятся такие звуки, не обрабатывая само аудио с длиной 0:01 - 0:02 (можете послушать
тут и
тут.) Как сделать так чтобы оно обрабатывало аудио? Такое чуство что файл он и не юзал, хотя прописано.
@bot.message_handler(commands=['rate'])
def handle_rate_command(message):
# Получаем аргументы из сообщения и преобразуем их в число
arguments = message.text.split()[1:]
rate = float(arguments[0])
pitch = float(arguments[1])
# Получаем аудио-файл из сообщения
audio = bot.get_file(message.reply_to_message.audio.file_id)
audio_file = bot.download_file(audio.file_path)
# Сохраняем аудио-файл на диск
file_name = audio.file_unique_id + '.' + audio.file_path.split('.')[-1]
file_path = f"media/{file_name}"
with open(file_path, 'wb') as f:
f.write(audio_file)
# Конвертируем аудио-файл в объект PyDub
audio_segment = AudioSegment.from_file(file_path, format=file_path.split('.')[-1])
# Изменяем скорость и тональность аудио и сохраняем результат
modified_audio = audio_segment._spawn(audio_segment.raw_data, overrides={
"frame_rate": int(audio_segment.frame_rate * rate),
"pitch": pitch
})
modified_file_name = 'modified_' + file_name
modified_file_path = f"media/{modified_file_name}"
modified_audio.export(modified_file_path, format=file_path.split('.')[-1])
# Отправляем измененный аудио-файл пользователю
with open(modified_file_path, "rb") as f:
bot.send_voice(message.chat.id, f)
# Удаляем файлы
os.remove(file_path)
os.remove(modified_file_path)