# pip install streamlit | |
import streamlit as st | |
import whisper | |
import components.logo as logo | |
import components.identification_aws as authenticate | |
# from audio_recorder_streamlit import audio_recorder | |
import soundfile as sf | |
import json | |
import datetime | |
from datetime import datetime as date | |
from datetime import timedelta as td | |
import components.fonctions_transcription as TRS | |
import boto3 | |
from dotenv import load_dotenv | |
import os | |
from deta import Deta | |
# ------------------------------------ | |
# Read constants from environment file | |
# ------------------------------------ | |
load_dotenv() | |
DETA_KEY = os.environ.get("DETA_KEY") | |
# Connect to Deta Base with your Data Key | |
#deta = Deta(st.secrets["data_key"]) | |
#Region Paris | |
###region="eu-west-3" | |
# # Initialize Cognito client | |
# cognito_client = boto3.client('cognito-idp', region_name=region) | |
# Chargement du fichier des utilisateurs | |
with open("users_info.json", 'r') as file: | |
dict_user = json.load(file) | |
# Logo de la page | |
my_logo = logo.add_logo(logo_path="logo_digitalixsa.png", width=100, height=100) | |
st.image(my_logo) | |
# Titre de la page | |
st.title("TRANSCRIPTION AUDIO AUTOMATIQUE DIGITALIX") | |
# Calcul annee-mois de trascription | |
maintenant = datetime.datetime.now() | |
Year = maintenant.year | |
Month = maintenant.month | |
Year_Month = str(Year) + '_' + str(Month).zfill(2) | |
#text_transcript = "" | |
# Check authentication | |
authenticate.set_st_state_vars() | |
# Add login/logout buttons | |
if st.session_state["authenticated"]: | |
authenticate.button_logout() | |
# informations de l'utilisateur | |
user_group = 'utilisateurs_sidwaya' | |
user_info = st.session_state["user_info"] | |
username = user_info['username'] | |
user_group = st.session_state["user_cognito_groups"][0] | |
# information de l'utilisateur | |
user_pool_name = 'transcription_streamlit' | |
# auth_code = st.session_state["auth_code"] | |
# add user to users_dict and group free | |
if username not in dict_user.keys(): | |
dict_user[username] = {"email": user_info['email'], | |
"durees_audio_sec":[0], | |
"date_inscription":str(maintenant), | |
"dates_transcription":[str(maintenant)], | |
"abonnement":1} | |
#group_name = 'utilisateurs_gratuits' | |
# get user pool id | |
#user_pool_id = authenticate.get_user_pool_id(user_pool_name) | |
#print("User Pool ID:", user_pool_id) | |
#authenticate.add_user_to_group(user_pool_id, username, group_name) | |
#Charger l'audio avec streamlit | |
# Chargement du modèle | |
model = whisper.load_model("large") | |
st.text("Chargement du modèle terminé") | |
audio_file = st.file_uploader("Charger l'audio", type=["wav", "mp3", "m4a","aac"]) | |
#audio_file = st.file_uploader("Charger l'audio", accept='audio/*') | |
#audio_name = audio_file.name | |
#Definition quota utilisation | |
quota_20H = 72000 | |
if st.sidebar.button("Transcrire l'audio"): | |
# Pour des groupes d'utilisateurs | |
if (user_group == "utilisateurs_sidwaya"): | |
text_transcript = TRS.transcript(dict_user,username,user_group, audio_file,maintenant,Year_Month,quota_20H,model) | |
################ Utilisateurs vip ############################ | |
################################################################### | |
# Pour des groupes d'utilisateurs vip | |
if ((user_group == "utilisateurs_vip") or (user_group == "utilisateurs_vip")) : | |
text_transcript = TRS.transcript(dict_user,username,user_group, audio_file,maintenant,Year_Month,quota_20H,model) | |
else: | |
authenticate.button_login() | |
# if (st.session_state["authenticated"]): | |
# user_info = st.session_state["user_info"] | |
# username = user_info['username'] | |
# # # add user to users_dict and group free | |
# # if username not in dict_user.keys() : | |
# # group_name = 'utilisateurs_gratuits' | |
# # # get user pool id | |
# # user_pool_id = authenticate.get_user_pool_id(user_pool_name) | |
# # #print("User Pool ID:", user_pool_id) | |
# # authenticate.add_user_to_group(user_pool_id, username, group_name) | |
# # Add the user to the group | |
# group_name = 'utilisateurs_gratuits' | |
# # get user pool id | |
# user_pool_id = authenticate.get_user_pool_id(user_pool_name) | |
# response = cognito_client.admin_add_user_to_group( | |
# UserPoolId=user_pool_id, | |
# Username=username, | |
# GroupName=group_name | |
# ) | |
# # Check if the operation was successful | |
# if response['ResponseMetadata']['HTTPStatusCode'] == 200: | |
# print('User added to the group successfully.') | |
# else: | |
# print('Failed to add the user to the group.') | |