add reqect all user message

This commit is contained in:
2023-11-11 18:44:10 +07:00
parent ebd1b6002b
commit 3ef7c96643
7 changed files with 2233 additions and 257 deletions
+40 -61
View File
@@ -1,7 +1,3 @@
import subprocess
import speech_recognition as sr
import os
from functions.loging import loging
import requests import requests
@@ -22,71 +18,54 @@ class Converter:
:return: str - текст + служебная информация :return: str - текст + служебная информация
""" """
# f = -1.0
try:
r = requests.get("http://192.168.0.108:5000/ping") r = requests.get("http://192.168.0.108:5000/ping")
if r.status_code == 200: if r.status_code == 200:
response = requests.post("http://192.168.0.108:5000/decrypt_audio", response = requests.post("http://192.168.0.108:5000/decrypt_audio",
files={"file": open(self.path_to_file, "rb").read()}) files={"file": open(self.path_to_file, "rb").read()})
if response.status_code == 200: if response.status_code == 200:
return f"От компа:\n{response.text.replace('"', '')}" return f"От компа:\n{response.text}"
else: else:
return 'Не удалось получить текст.' return 'Не удалось получить текст.'
else: else:
result = self.model.transcribe(self.path_to_file) result = self.model.transcribe(self.path_to_file)
return result["text"] 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: # try:
# import mutagen # os.remove(self.path_to_file) # удаляю файл
# f = mutagen.File(self.path_to_file) # получение данных mutagen # wav_file = self.path_to_file.replace(".ogg", ".wav") # замена в ссылке на файл ogg в wav
# f = float(f.info.length) # r = sr.Recognizer() # создаю объект google stt
# if f >= 30.0: # если длинна больше 30 секунд # with sr.AudioFile(wav_file) as source: # получаю байты из файла
# self.service = "google" # устанавливаю сервис google # audio = r.record(source) # получаю файл в нужном google stt формате байт
# return self.google(f) # запуск функции google # r.adjust_for_ambient_noise(source) # мини очистка шума
# else: # try:
# self.service = "yandex" # устанавливаем сервис yandex # response = "google\n\n" + r.recognize_google(audio, language=self.language) # получение текста
# return self.yandex(f) # запуск функции yandex # loging(self.message, "google", wav_file, response, f) # записываю логи
# except Exception as e: # если какая-то проблема # os.remove(wav_file) # удаляю лишние файлы
# print(e) # return response # возвращаю текст
# return self.google(f) # запуск функции google # except sr.UnknownValueError: # ошибка распознавания текста
except sr.RequestError: # обработка ошибки размера файлов # return "google\n\n Слова не распознаны, вы что вообще мне впихнуть пытаетесь" # возвращаю ошибочное
return "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки # # сообщение
# except FileNotFoundError: # ошибка файла(из-за веса telegram не пускает)
def google(self, f) -> str: # return "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки
""" #
Функция работающая с stt google # def yandex(self, f) -> str:
# """
:return: str - текст + служебная информация # Функция работающая с stt yandex
""" #
subprocess.run(['ffmpeg', '-v', 'quiet', '-i', self.path_to_file, self.path_to_file.replace(".ogg", ".wav")]) # :return: str - текст + служебная информация
# перевод ogg в wav # """
try: # from speechkit import ShortAudioRecognition, Session # импортирую сесию и объект для stt
os.remove(self.path_to_file) # удаляю файл # reg = ShortAudioRecognition(Session.from_api_key("AQVN3xNJamAFP4_FS6Gis0Uud0vONFk24umBSXvh")) # получаю
wav_file = self.path_to_file.replace(".ogg", ".wav") # замена в ссылке на файл ogg в wav # # объект для расшифровки
r = sr.Recognizer() # создаю объект google stt # response = "yandex\n\n" + reg.recognize(open(str(self.path_to_file), str('rb')).read()) # получаю весь текст
with sr.AudioFile(wav_file) as source: # получаю байты из файла # loging(self.message, "yandex", self.path_to_file, response, f) # записываю логи
audio = r.record(source) # получаю файл в нужном google stt формате байт # os.remove(self.path_to_file) # удаляю лишние файлы
r.adjust_for_ambient_noise(source) # мини очистка шума # return response # возвращаю ответ
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 # возвращаю ответ
+17 -1
View File
@@ -1,3 +1,5 @@
import json
from aiogram.utils import executor from aiogram.utils import executor
from loguru import logger from loguru import logger
from aiogram import Bot, Dispatcher, types from aiogram import Bot, Dispatcher, types
@@ -9,10 +11,24 @@ bot = Bot(token="5941118321:AAG0g0keLrlnuH_9U9X6ehpFFAdOX38qeXI") # созда
dp = Dispatcher(bot) # создаю объект слушателя dp = Dispatcher(bot) # создаю объект слушателя
logger.remove() # удаляю стандартный логер logger.remove() # удаляю стандартный логер
logger.add("static/logs/logging_log.log", level="INFO") # создаю логер logger.add("static/logs/logging_log.log", level="INFO") # создаю логер
model = whisper.load_model("tiny") model = whisper.load_model("tiny", device='cpu')
lock = asyncio.Lock() lock = asyncio.Lock()
@dp.message_handler(commands=['send_messages'])
async def send_messages_command(message: types.Message):
print(message.from_user.id)
if message.from_user.id == 620318992:
with open('users.json') as file:
data = json.load(file)
for index, user_id in enumerate(data['audio'] + data['chats']):
try:
print(index)
await bot.send_message(user_id, " ".join(message.text.split(" ")[1:]))
except Exception as e:
print(e)
@dp.message_handler(content_types=['new_chat_members']) @dp.message_handler(content_types=['new_chat_members'])
async def new_chat_members_handler(message: types.Message): async def new_chat_members_handler(message: types.Message):
file_data.save_data('chats', message.chat.id) file_data.save_data('chats', message.chat.id)
+1
View File
@@ -4,6 +4,7 @@ from functions.admin.models import database
from functions.admin.templates import logins, refresh, logs, log from functions.admin.templates import logins, refresh, logs, log
import uvicorn import uvicorn
def Site(): def Site():
app = FastAPI() app = FastAPI()
templates = templating.Jinja2Templates(directory="static/templates") templates = templating.Jinja2Templates(directory="static/templates")
Generated
+2029
View File
File diff suppressed because it is too large Load Diff
+24
View File
@@ -0,0 +1,24 @@
[tool.poetry]
name = "audio-resive"
version = "0.9.0"
description = ""
authors = ["dmitrium12 <belicdima8@gmail.com>"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.11"
loguru = "^0.7.2"
aiogram = "2.23.1"
requests = "^2.31.0"
setuptools-rust = "^1.8.1"
openai-whisper = "^20231106"
torch = "2.0.0"
fastapi = "^0.104.1"
jwt = "^1.3.1"
sqlalchemy = "^2.0.23"
uvicorn = "^0.24.0.post1"
python-multipart = "^0.0.6"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
-170
View File
@@ -1,170 +0,0 @@
aiofiles==23.1.0
aiogram==2.25.1
aiohttp==3.8.4
aiolimiter==1.1.0
aiosignal==1.3.1
altair
anyio==3.7.0
APScheduler==3.10.1
async-generator==1.10
async-timeout==4.0.2
attrs==23.1.0
audiosegment==0.23.0
Babel==2.9.1
bcrypt==4.0.1
beautifulsoup4==4.12.2
BibaAndBoba
blinker==1.6.2
boto3==1.26.145
botocore==1.29.145
cachetools==5.3.1
certifi==2023.5.7
cffi==1.15.1
charset-normalizer==3.1.0
click==8.1.3
colorama==0.4.6
contourpy==1.0.7
cryptography==41.0.1
curl-cffi==0.5.6
cycler==0.11.0
DAWG-Python==0.7.2
decorator==5.1.1
deep-translator==1.11.1
dill==0.3.6
discord==2.2.3
discord.py==2.2.3
dnspython==2.3.0
docopt==0.6.2
email-validator==2.0.0.post2
entrypoints==0.4
exceptiongroup==1.1.1
fake-useragent==1.1.3
fastapi==0.95.2
fastapi-users==11.0.0
Flask==2.3.2
fonttools==4.39.4
forefront==0.2.6
frozenlist==1.3.3
geographiclib==2.0
geopy==2.3.0
gitdb==4.0.10
GitPython==3.1.31
gpt4free==1.0.2
greenlet==2.0.2
grpcio==1.54.2
grpcio-tools==1.48.2
h11==0.14.0
h2==4.1.0
hpack==4.0.0
httpcore==0.17.2
httpx==0.24.1
hyperframe==6.0.1
idna==3.4
importlib-metadata==6.6.0
itsdangerous==2.1.2
javascript==1!1.0.2
Jinja2==3.1.2
jmespath==1.0.1
joblib==1.2.0
jsonschema==4.17.3
kiwisolver==1.4.4
loguru==0.7.0
lxml==4.9.2
magic-filter==1.0.9
makefun==1.15.1
markdown-it-py==2.2.0
MarkupSafe==2.1.2
matplotlib==3.7.1
mdurl==0.1.2
multidict==6.0.4
multiprocess==0.70.14
mutagen==1.46.0
names==0.3.0
nltk==3.8.1
numpy==1.24.3
openai==0.27.7
outcome==1.2.0
packaging==23.1
pandas
passlib==1.7.4
pathos==0.3.0
Pillow==9.5.0
pip-review==1.3.0
pox==0.3.2
ppft==1.7.6.6
prettytable==3.7.0
protobuf==3.19.6
pyarrow==12.0.0
pycparser==2.21
pydantic==1.10.8
pydeck==0.8.1b0
pydub==0.25.1
PyExecJS==1.5.1
Pygments==2.15.1
PyJWT==2.6.0
pymailtm==1.1.1
pymorphy2==0.9.1
pymorphy2-dicts-ru==2.4.417127.4579844
Pympler==1.0.1
pyparsing==3.0.9
PyPasser==0.0.5
pyperclip==1.8.2
pyrsistent==0.19.3
PySocks==1.7.1
pyTelegramBotAPI==4.12.0
python-dateutil==2.8.2
python-dotenv==1.0.0
python-multipart==0.0.6
python-telegram-bot==20.3
pytz==2023.3
pytz-deprecation-shim==0.1.0.post0
random-username==1.0.2
regex==2023.5.5
requests==2.31.0
rfc3986==2.0.0
rich==13.4.1
rnnoise-wrapper @ git+https://github.com/Desklop/RNNoise_Wrapper@10647eba5c1dc678dc3fd443d111400792fefef6
s3transfer==0.6.1
scipy==1.10.1
selenium==4.9.1
six==1.16.0
smmap==5.0.0
sniffio==1.3.0
sortedcontainers==2.4.0
soupsieve==2.4.1
speechkit==2.2.2
SpeechRecognition==3.8.1
SQLAlchemy==2.0.15
srt==3.5.3
starlette==0.27.0
streamlit==1.21.0
tls-client==0.2.1
toml==0.10.2
toolz==0.12.0
tornado==6.3.2
tqdm==4.65.0
translators==5.7.6
trio==0.22.0
trio-websocket==0.10.2
TwoCaptcha==0.0.1
typing_extensions==4.6.3
tzdata==2023.3
tzlocal==5.0.1
urllib3==1.26.12
uvicorn==0.22.0
validators==0.20.0
vk-api==11.9.9
vosk==0.3.45
watchdog==3.0.0
wcwidth==0.2.6
webdriver-manager==3.8.6
webrtcvad==2.0.10
websocket-client==1.5.2
websockets==11.0.3
Werkzeug==2.3.4
wsproto==1.2.0
yandex-s3==0.1.1
yarl==1.9.2
yaweather==1.2.2
zipp==3.15.0
pytube~=15.0.0
+113 -16
View File
@@ -1,29 +1,83 @@
{ {
"start": [ "start": [
620318992, 620318992,
1144937686,
5142202213,
6285339504,
5807099397,
1816362641,
5544944943,
107869711
],
"r": [
620318992,
1144937686,
6263682066, 6263682066,
1484475666, 1484475666,
651112197, 651112197,
5142202213, 5142202213,
923680079,
1476571560, 1476571560,
725117322 725117322,
984739617,
1354877191,
776580615,
1306387278,
968362254,
5236831581,
1289300068,
6061729451,
771698122,
5625829811,
5999838783,
6024789208,
6266756934,
6157618857,
1322239616,
6146837876,
1350876280,
5952779022,
2035106314,
5260820504,
2022668009,
5440238954,
5761653422,
5904836983,
6502397492,
5093807039,
6223065066,
5270933829,
5762925737,
5827777576,
1480761511,
1787724316,
5610992398,
1953616385,
5807099397,
5096361806,
6611897980
],
"r": [
620318992,
6263682066,
1484475666,
651112197,
5142202213,
923680079,
1476571560,
984739617,
1354877191,
776580615,
1306387278,
968362254
], ],
"chats": [ "chats": [
-1001977366032, -1001977366032,
-1001887458183, -1001887458183,
-1001913006666, -1001913006666,
-1001560258527 -1001560258527,
-864309379,
-1001655532693,
-1001925796789,
-942157516,
-908904742,
-844724381,
-1001934570227,
-1001581791240,
-741706940,
-1001961013350,
-4035262483,
-1001727326919,
-4070895995
], ],
"audio": [ "audio": [
1144937686, 1144937686,
@@ -39,10 +93,53 @@
5563487236, 5563487236,
6285339504, 6285339504,
864790102, 864790102,
107869711 107869711,
1289300068,
5557054772,
569610519,
5247621425,
771698122,
283388889,
5680091950,
5119604384,
725117322,
1621662546,
6157618857,
5999838783,
1032066942,
1161115276,
6024789208,
1322239616,
6146837876,
1350876280,
5952779022,
5097877817,
2035106314,
6108542318,
1240096781,
1253225127,
5631450230,
5260820504,
5141722131,
1411412989,
1018057837,
2022668009,
1729790806,
921170897,
1152039013,
6166560826,
1078139185,
5270933829,
1138262067,
1787724316,
1953616385,
1145526981,
1817488391,
822965653,
1443926406
], ],
"static": { "static": {
"audio_resive": 2, "audio_resive": 1191,
"chatGPT": 0 "chatGPT": 1303
} }
} }