digitalixsa_transcription / pages /Transcription.py
davidanthony-ai
echec test aac
42e6442
# 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.')