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

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.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:
return response.json()
else:
return 'Не удалось получить текст.'
return {
"timestamp": " ",
"final_text": "Не удалось получить текст."
}
else:
result = self.model.transcribe(self.path_to_file)
return result["text"]
return {
"timestamp": "Тут такое не работает, "
"жди пока главный сервер поднимется",
"final_text": result["text"]
}
except requests.ConnectionError:
result = self.model.transcribe(self.path_to_file)
return result["text"]
return {
"timestamp": "Тут такое не работает, "
"жди пока главный сервер поднимется",
"final_text": result["text"]
}
+22 -12
View File
@@ -1,8 +1,7 @@
import os
from io import BytesIO
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:
@@ -36,13 +35,24 @@ async def get_audio_messages_func(message: types.Message, logger, bot, model) ->
else:
name = message.chat.title
with open(file_name, 'wb') as new_file: # открываю файл для записи
file = await bot.get_file(file_id) # ссылка для скачивая файла
file_dow = await bot.download_file(file.file_path) # скачанный файл
new_file.write(file_dow.getvalue()) # записываю
converter = Converter(file_name, message, model) # запуск конвертора
message_text = converter.audio_to_text() # получаю текст из конвертора
logger.info(f"Чат {name} (ID: {message.chat.id}) обработал файл {file_name}, "
f"сервисом {converter.service}") # записываю всё в logger
file = BytesIO(message_text['timestamp'].encode('utf-8'))
file.name = 'timestamp.txt'
await bot.send_document(chat_id=message.chat.id, document=file, caption=f"От компа:\n{message_text['final_text']}")
try:
file = await bot.get_file(file_id) # ссылка для скачивая файла
file_dow = await bot.download_file(file.file_path) # скачанный файл
converter = Converter(file_name, message, model) # запуск конвертора
message_text = converter.audio_to_text() # получаю текст из конвертора
logger.info(f"Чат {name} (ID: {message.chat.id}) обработал файл {file_name}, "
f"сервисом {converter.service}") # записываю всё в logger
file = BytesIO(message_text['timestamp'].encode('utf-8'))
file.name = 'timestamp.txt'
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,
"Файл слишком большой, попробуйте расшифровку у нас на сайте. "
"На сайте нет ограничений на размер файла. Ссылка на сайт: будет позже"
)