add reqect all user message
This commit is contained in:
+49
-70
@@ -1,7 +1,3 @@
|
||||
import subprocess
|
||||
import speech_recognition as sr
|
||||
import os
|
||||
from functions.loging import loging
|
||||
import requests
|
||||
|
||||
|
||||
@@ -22,71 +18,54 @@ class Converter:
|
||||
|
||||
:return: str - текст + служебная информация
|
||||
"""
|
||||
# f = -1.0
|
||||
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()})
|
||||
if response.status_code == 200:
|
||||
return f"От компа:\n{response.text.replace('"', '')}"
|
||||
else:
|
||||
return 'Не удалось получить текст.'
|
||||
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()})
|
||||
if response.status_code == 200:
|
||||
return f"От компа:\n{response.text}"
|
||||
else:
|
||||
result = self.model.transcribe(self.path_to_file)
|
||||
return result["text"]
|
||||
# try:
|
||||
# import mutagen
|
||||
# f = mutagen.File(self.path_to_file) # получение данных mutagen
|
||||
# f = float(f.info.length)
|
||||
# if f >= 30.0: # если длинна больше 30 секунд
|
||||
# self.service = "google" # устанавливаю сервис google
|
||||
# return self.google(f) # запуск функции google
|
||||
# else:
|
||||
# self.service = "yandex" # устанавливаем сервис yandex
|
||||
# return self.yandex(f) # запуск функции yandex
|
||||
# except Exception as e: # если какая-то проблема
|
||||
# print(e)
|
||||
# return self.google(f) # запуск функции google
|
||||
except sr.RequestError: # обработка ошибки размера файлов
|
||||
return "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки
|
||||
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 # возвращаю ответ
|
||||
# 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 # возвращаю ответ
|
||||
|
||||
Reference in New Issue
Block a user