Как обработать .wav или mp3 файлов в телеграмм боте
хочу создать бота в телеграмм, который может получать аудиофайлы разных типов, производить с ними некоторые манипуляции и возвращать пользователю что-то (например фото) как именно с помощью telebot (именно этот API я хочу использовать) возможно это реализовать. Либо может кто-то может оставить ссылку на конкретный пример.Заранее спасибо UPD код:
import telebot
import numpy as np
from numpy import argmax
import matplotlib.pyplot as plt
#%matplotlib inline
import librosa
import librosa.display
#import IPython.display
import matplotlib.pyplot as plt
from PIL import Image
bot = telebot.TeleBot('00000')
@bot.message_handler(content_types=['document','audio'])
def handle_docs_photo(message):
try:
chat_id = message.chat.id
file_info = bot.get_file(message.document.file_id)
downloaded_file = bot.download_file(file_info.file_path)
src = 'C:\\Users\\NitghtWay\\OneDrive\\Рабочий стол\\Botyara\\' + message.document.file_name;
with open(src, 'wb') as new_file:
new_file.write(downloaded_file)
bot.reply_to(message, "Пожалуй, я сохраню это")
except Exception as e:
bot.reply_to(message, e)
bot.polling(none_stop=True, interval=0)
Ответы (1 шт):
Автор решения: Violet
→ Ссылка
- информация о типе контента содержится в
message.content_type - информация о файле хранится, в вашем случае, в
message.documentиmessage.audio - для wav
content_types=['document'] - для mp3
content_types=['audio']
таким образом:
@bot.message_handler(content_types=['document', 'audio'])
def get_file(message):
try:
if message.content_type == 'document': # wav
print(message.document)
file_info = bot.get_file(message.document.file_id)
downloaded_file = bot.download_file(file_info.file_path)
src = 'files/' + message.document.file_name
with open(src, 'wb') as new_file:
new_file.write(downloaded_file)
bot.reply_to(message, "Пожалуй, я сохраню это")
elif message.content_type == 'audio': # mp3
print(message.audio)
file_info = bot.get_file(message.audio.file_id)
downloaded_file = bot.download_file(file_info.file_path)
src = 'files/' + message.audio.file_name
with open(src, 'wb') as new_file:
new_file.write(downloaded_file)
bot.reply_to(message, "Пожалуй, я сохраню это")
except Exception as e:
bot.reply_to(message, str(e))
для Windows можно использовать пути вида files/ при условии, что каталог files находится рядом с файлом .py