fix requests.ConnectionError

This commit is contained in:
2023-12-30 18:57:04 +07:00
parent 3ef7c96643
commit edeff841c3
3 changed files with 27 additions and 50 deletions
+10 -43
View File
@@ -18,54 +18,21 @@ class Converter:
:return: str - текст + служебная информация
"""
try:
r = requests.get("http://192.168.0.108:5000/ping")
if r.status_code == 200:
response = requests.post("http://192.168.0.108:5000/decrypt_audio",
files={"file": open(self.path_to_file, "rb").read()})
response = requests.post(
"http://192.168.0.108:5000/decrypt_audio",
files={"file": open(self.path_to_file, "rb").read()},
timeout=6000
)
if response.status_code == 200:
return f"От компа:\n{response.text}"
return response.json()
else:
return 'Не удалось получить текст.'
else:
result = self.model.transcribe(self.path_to_file)
return result["text"]
# def google(self, f) -> str:
# """
# Функция работающая с stt google
#
# :return: str - текст + служебная информация
# """
# subprocess.run(['ffmpeg', '-v', 'quiet', '-i', self.path_to_file, self.path_to_file.replace(".ogg", ".wav")])
# # перевод ogg в wav
# try:
# os.remove(self.path_to_file) # удаляю файл
# wav_file = self.path_to_file.replace(".ogg", ".wav") # замена в ссылке на файл ogg в wav
# r = sr.Recognizer() # создаю объект google stt
# with sr.AudioFile(wav_file) as source: # получаю байты из файла
# audio = r.record(source) # получаю файл в нужном google stt формате байт
# r.adjust_for_ambient_noise(source) # мини очистка шума
# try:
# response = "google\n\n" + r.recognize_google(audio, language=self.language) # получение текста
# loging(self.message, "google", wav_file, response, f) # записываю логи
# os.remove(wav_file) # удаляю лишние файлы
# return response # возвращаю текст
# except sr.UnknownValueError: # ошибка распознавания текста
# return "google\n\n Слова не распознаны, вы что вообще мне впихнуть пытаетесь" # возвращаю ошибочное
# # сообщение
# except FileNotFoundError: # ошибка файла(из-за веса telegram не пускает)
# return "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки
#
# def yandex(self, f) -> str:
# """
# Функция работающая с stt yandex
#
# :return: str - текст + служебная информация
# """
# from speechkit import ShortAudioRecognition, Session # импортирую сесию и объект для stt
# reg = ShortAudioRecognition(Session.from_api_key("AQVN3xNJamAFP4_FS6Gis0Uud0vONFk24umBSXvh")) # получаю
# # объект для расшифровки
# response = "yandex\n\n" + reg.recognize(open(str(self.path_to_file), str('rb')).read()) # получаю весь текст
# loging(self.message, "yandex", self.path_to_file, response, f) # записываю логи
# os.remove(self.path_to_file) # удаляю лишние файлы
# return response # возвращаю ответ
except requests.ConnectionError:
result = self.model.transcribe(self.path_to_file)
return result["text"]
+11 -1
View File
@@ -1,4 +1,6 @@
import os
from io import BytesIO
from functions.convert import Converter
from aiogram import types
@@ -19,6 +21,12 @@ async def get_audio_messages_func(message: types.Message, logger, bot, model) ->
file_id = message.voice.file_id
elif message.content_type in ['video']:
file_id = message.video.file_id
elif message.content_type in ['video_note']:
file_id = message.video_note.file_id
elif message.content_type in ['document']:
file_id = message.document.file_id
elif message.content_type in ['audio']:
file_id = message.audio.file_id
else:
file_id = message.video_note.file_id
file_name = "config/" + str(message.message_id) + '.ogg' # создаю file_name
@@ -35,4 +43,6 @@ async def get_audio_messages_func(message: types.Message, logger, bot, model) ->
message_text = converter.audio_to_text() # получаю текст из конвертора
logger.info(f"Чат {name} (ID: {message.chat.id}) обработал файл {file_name}, "
f"сервисом {converter.service}") # записываю всё в logger
await bot.send_message(message.chat.id, message_text, reply_to_message_id=message.message_id) # отправляю сообщение
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']}")
+1 -1
View File
@@ -46,7 +46,7 @@ async def start(message: types.Message):
await start_stat.start_stat(message)
@dp.message_handler(content_types=['voice', 'video_note', 'video']) # обрабатываю голосовые сообщения, кружки, видео
@dp.message_handler(content_types=['voice', 'video_note', 'video', 'audio', 'document']) # обрабатываю голосовые сообщения, кружки, видео
async def get_audio_messages(message: types.Message):
file_data.save_data('audio_resive')
if message.chat.type == 'group' or message.chat.type == "supergroup":