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
+49 -70
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 r = requests.get("http://192.168.0.108:5000/ping")
try: if r.status_code == 200:
r = requests.get("http://192.168.0.108:5000/ping") response = requests.post("http://192.168.0.108:5000/decrypt_audio",
if r.status_code == 200: files={"file": open(self.path_to_file, "rb").read()})
response = requests.post("http://192.168.0.108:5000/decrypt_audio", if response.status_code == 200:
files={"file": open(self.path_to_file, "rb").read()}) return f"От компа:\n{response.text}"
if response.status_code == 200:
return f"От компа:\n{response.text.replace('"', '')}"
else:
return 'Не удалось получить текст.'
else: else:
result = self.model.transcribe(self.path_to_file) return 'Не удалось получить текст.'
return result["text"] else:
# try: result = self.model.transcribe(self.path_to_file)
# import mutagen return result["text"]
# 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 "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки
def google(self, f) -> str: # def google(self, f) -> str:
""" # """
Функция работающая с stt google # Функция работающая с stt google
#
:return: str - текст + служебная информация # :return: str - текст + служебная информация
""" # """
subprocess.run(['ffmpeg', '-v', 'quiet', '-i', self.path_to_file, self.path_to_file.replace(".ogg", ".wav")]) # subprocess.run(['ffmpeg', '-v', 'quiet', '-i', self.path_to_file, self.path_to_file.replace(".ogg", ".wav")])
# перевод ogg в wav # # перевод ogg в wav
try: # try:
os.remove(self.path_to_file) # удаляю файл # os.remove(self.path_to_file) # удаляю файл
wav_file = self.path_to_file.replace(".ogg", ".wav") # замена в ссылке на файл ogg в wav # wav_file = self.path_to_file.replace(".ogg", ".wav") # замена в ссылке на файл ogg в wav
r = sr.Recognizer() # создаю объект google stt # r = sr.Recognizer() # создаю объект google stt
with sr.AudioFile(wav_file) as source: # получаю байты из файла # with sr.AudioFile(wav_file) as source: # получаю байты из файла
audio = r.record(source) # получаю файл в нужном google stt формате байт # audio = r.record(source) # получаю файл в нужном google stt формате байт
r.adjust_for_ambient_noise(source) # мини очистка шума # r.adjust_for_ambient_noise(source) # мини очистка шума
try: # try:
response = "google\n\n" + r.recognize_google(audio, language=self.language) # получение текста # response = "google\n\n" + r.recognize_google(audio, language=self.language) # получение текста
loging(self.message, "google", wav_file, response, f) # записываю логи # loging(self.message, "google", wav_file, response, f) # записываю логи
os.remove(wav_file) # удаляю лишние файлы # os.remove(wav_file) # удаляю лишние файлы
return response # возвращаю текст # return response # возвращаю текст
except sr.UnknownValueError: # ошибка распознавания текста # except sr.UnknownValueError: # ошибка распознавания текста
return "google\n\n Слова не распознаны, вы что вообще мне впихнуть пытаетесь" # возвращаю ошибочное # return "google\n\n Слова не распознаны, вы что вообще мне впихнуть пытаетесь" # возвращаю ошибочное
# сообщение # # сообщение
except FileNotFoundError: # ошибка файла(из-за веса telegram не пускает) # except FileNotFoundError: # ошибка файла(из-за веса telegram не пускает)
return "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки # return "Толи файл слишком большой, толи с ботом что-то случилось" # возвращение ошибки
#
def yandex(self, f) -> str: # def yandex(self, f) -> str:
""" # """
Функция работающая с stt yandex # Функция работающая с stt yandex
#
:return: str - текст + служебная информация # :return: str - текст + служебная информация
""" # """
from speechkit import ShortAudioRecognition, Session # импортирую сесию и объект для stt # from speechkit import ShortAudioRecognition, Session # импортирую сесию и объект для stt
reg = ShortAudioRecognition(Session.from_api_key("AQVN3xNJamAFP4_FS6Gis0Uud0vONFk24umBSXvh")) # получаю # reg = ShortAudioRecognition(Session.from_api_key("AQVN3xNJamAFP4_FS6Gis0Uud0vONFk24umBSXvh")) # получаю
# объект для расшифровки # # объект для расшифровки
response = "yandex\n\n" + reg.recognize(open(str(self.path_to_file), str('rb')).read()) # получаю весь текст # 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) # записываю логи # loging(self.message, "yandex", self.path_to_file, response, f) # записываю логи
os.remove(self.path_to_file) # удаляю лишние файлы # os.remove(self.path_to_file) # удаляю лишние файлы
return response # возвращаю ответ # 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
} }
} }