Занимаюсь разработкой бота, который получает в сообщение песню, обрабатывает ее, и выводит мне настроение, текст песни.
import os
import speech_recognition as sr
import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer
from nltk.corpus import wordnet
from afinn import Afinn
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.types import ContentType
from aiogram.utils import executor
# Указываем токен бота
bot = Bot(token='token')
dp = Dispatcher(bot)
# Включаем логирование
logging.basicConfig(level=logging.INFO)
# Обработчик голосовых сообщений
@dp.message_handler(content_types=ContentType.VOICE)
async def handle_message(message: types.Message):
try:
# Получаем информацию о файле и загружаем его
file_id = message.voice.file_id
file = await bot.get_file(file_id)
file_path = file.file_path
# Создаем объект распознавания речи и открываем файл аудио
r = sr.Recognizer()
with sr.AudioFile(file_path) as source:
audio_text = r.record(source)
# Конвертируем аудиофайл в текст
print(f'file_id: {file_id}')
print(f'file_path: {file_path}')
text = r.recognize_google(audio_text, language='en')
# Определяем настроение текста при помощи SentimentIntensityAnalyzer
sia = SentimentIntensityAnalyzer()
sentiment = sia.polarity_scores(text)
# Анализируем текст при помощи Afinn
afinn = Afinn()
afinn_score = afinn.score(text)
# Анализируем текст на схожесть с известными словами при помощи WordNet
synsets = wordnet.synsets(text)
# Формируем текст ответа
response_text = f'Анализ настроения песни:\n\nSentiment: {sentiment}\nAfinn score: {afinn_score}\nSynsets: {synsets}'
# Отправляем ответ пользователю
await bot.send_message(chat_id=message.chat.id, text=response_text)
except Exception as e:
logging.exception(e)
await bot.send_message(chat_id=message.chat.id, text='Произошла ошибка при обработке аудиофайла. Попробуйте еще раз.')
# Запускаем бота
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
В терминале появляются следующие сообщения:
INFO:aiogram:Bot: MyTranslater [@MyTranslaterrr_bot]
WARNING:aiogram:Updates were skipped successfully.
INFO:aiogram.dispatcher.dispatcher:Start polling.
После отправки боту песни, никакого обратного ответа я не получаю, пытался сделать отладку, чтобы получить хотя-бы название песни, которое получает бот, но ответа также нету.