# 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.')