добавил сообщение из-за слишком большого файла, а так же сделал нормальное распознавание на микро сервере

This commit is contained in:
2023-12-30 19:23:20 +07:00
parent edeff841c3
commit acce0b14f5
2 changed files with 37 additions and 16 deletions
+15 -4
View File
@@ -12,7 +12,7 @@ class Converter:
self.message = message self.message = message
self.model = model self.model = model
def audio_to_text(self) -> str: def audio_to_text(self) -> dict:
""" """
Основная функция Основная функция
@@ -29,10 +29,21 @@ class Converter:
if response.status_code == 200: if response.status_code == 200:
return response.json() return response.json()
else: else:
return 'Не удалось получить текст.' return {
"timestamp": " ",
"final_text": "Не удалось получить текст."
}
else: else:
result = self.model.transcribe(self.path_to_file) result = self.model.transcribe(self.path_to_file)
return result["text"] return {
"timestamp": "Тут такое не работает, "
"жди пока главный сервер поднимется",
"final_text": result["text"]
}
except requests.ConnectionError: except requests.ConnectionError:
result = self.model.transcribe(self.path_to_file) result = self.model.transcribe(self.path_to_file)
return result["text"] return {
"timestamp": "Тут такое не работает, "
"жди пока главный сервер поднимется",
"final_text": result["text"]
}
+14 -4
View File
@@ -1,8 +1,7 @@
import os import os
from io import BytesIO from io import BytesIO
from functions.convert import Converter from functions.convert import Converter
from aiogram import types from aiogram import types, exceptions
async def get_audio_messages_func(message: types.Message, logger, bot, model) -> None: async def get_audio_messages_func(message: types.Message, logger, bot, model) -> None:
@@ -36,13 +35,24 @@ async def get_audio_messages_func(message: types.Message, logger, bot, model) ->
else: else:
name = message.chat.title name = message.chat.title
with open(file_name, 'wb') as new_file: # открываю файл для записи with open(file_name, 'wb') as new_file: # открываю файл для записи
try:
file = await bot.get_file(file_id) # ссылка для скачивая файла file = await bot.get_file(file_id) # ссылка для скачивая файла
file_dow = await bot.download_file(file.file_path) # скачанный файл file_dow = await bot.download_file(file.file_path) # скачанный файл
new_file.write(file_dow.getvalue()) # записываю
converter = Converter(file_name, message, model) # запуск конвертора converter = Converter(file_name, message, model) # запуск конвертора
message_text = converter.audio_to_text() # получаю текст из конвертора message_text = converter.audio_to_text() # получаю текст из конвертора
logger.info(f"Чат {name} (ID: {message.chat.id}) обработал файл {file_name}, " logger.info(f"Чат {name} (ID: {message.chat.id}) обработал файл {file_name}, "
f"сервисом {converter.service}") # записываю всё в logger f"сервисом {converter.service}") # записываю всё в logger
file = BytesIO(message_text['timestamp'].encode('utf-8')) file = BytesIO(message_text['timestamp'].encode('utf-8'))
file.name = 'timestamp.txt' file.name = 'timestamp.txt'
await bot.send_document(chat_id=message.chat.id, document=file, caption=f"От компа:\n{message_text['final_text']}") await bot.send_document(
chat_id=message.chat.id,
document=file,
caption=f"От компа:\n{message_text['final_text']}"
)
new_file.write(file_dow.getvalue()) # записываю
except exceptions.FileIsTooBig:
await bot.send_message(
message.chat.id,
"Файл слишком большой, попробуйте расшифровку у нас на сайте. "
"На сайте нет ограничений на размер файла. Ссылка на сайт: будет позже"
)