154 lines
4.6 KiB
Python
154 lines
4.6 KiB
Python
from taipy.gui import Gui
|
|
import hashlib
|
|
import json
|
|
import codecs, os
|
|
from taipy.gui import Html
|
|
import pandas as pd
|
|
import requests
|
|
import statistics
|
|
from databases import db
|
|
pwd = os.getcwd()
|
|
|
|
HTML = os.path.join(pwd,"html", "index.html")
|
|
file_read = codecs.open(HTML, "r", "utf-8")
|
|
index = file_read.read()
|
|
html_page_index = Html(index)
|
|
|
|
def getmetricvoice(model):
|
|
rows = db(db.analitic_voice.model==model).select()
|
|
rows_list = rows.as_list()
|
|
data=pd.DataFrame(rows_list)
|
|
durationL=list()
|
|
for i in rows_list:
|
|
durationL.append(db(db.trusted.path == i["path"] ).select().last().duration)
|
|
duration=statistics.mean(durationL)
|
|
time=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['time'].values[0]
|
|
similarity=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similarity'].values[0]
|
|
similaritypartial=pd.pivot_table(data,values=['time','similarity', 'similaritypartial'],index="model")['similaritypartial'].values[0]
|
|
efectivetime=time/duration
|
|
return ({"model":model,"duration":duration,"time":time,"similarity":similarity,"similaritypartial":similaritypartial,"efectivetime":efectivetime})
|
|
|
|
def html_getmetricvoice():
|
|
models=list()
|
|
for row in db().select(db.analitic_voice.model, distinct=True):
|
|
models.append(row.model)
|
|
data={}
|
|
for model in models:
|
|
data[model]=getmetricvoice(model)
|
|
data=pd.DataFrame(data).T
|
|
datafiles={}
|
|
for row in db().select(db.analitic_voice.ALL):
|
|
datafiles[row.id]=row.as_dict()
|
|
datafiles=pd.DataFrame(datafiles).T
|
|
html="""
|
|
<taipy:table>{data_voice}</taipy:table>
|
|
<taipy:table filter=True>{data_files_voice}</taipy:table>
|
|
"""
|
|
|
|
return html,data,datafiles
|
|
html_page_getmetricsvoice,data_voice,data_files_voices=html_getmetricvoice()
|
|
|
|
|
|
def evalVoicehtml():
|
|
pathAud="example/audio"
|
|
dir_list = os.listdir(pathAud)
|
|
Sal=""
|
|
t=1
|
|
for i in dir_list:
|
|
|
|
temp="""<option value="%s">Opción %s, %s</option>
|
|
"""%(str(pwd+"/"+pathAud+"/"+i),str(t),str(i))
|
|
Sal=Sal+temp
|
|
t=t+1
|
|
|
|
|
|
html="""<!DOCTYPE html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Evaluacion de modelos voice2txt</title>
|
|
<style>
|
|
body {
|
|
font-family: Arial, sans-serif;
|
|
margin: 20px;
|
|
}
|
|
input, button {
|
|
margin: 10px 0;
|
|
padding: 5px;
|
|
}
|
|
#respuesta {
|
|
margin-top: 20px;
|
|
padding: 10px;
|
|
border: 1px solid #ccc;
|
|
background-color: #f9f9f9;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>Petición POST a API</h1>
|
|
|
|
<select id="texto1">
|
|
%s
|
|
</select>
|
|
|
|
<br>
|
|
<select id="texto2">
|
|
<option value="whisper">whisper</option>
|
|
<option value="vosk">vosk</option>
|
|
</select>
|
|
<br>
|
|
<button onclick="enviarPeticion()">Enviar petición</button>
|
|
<div id="respuesta"></div>
|
|
|
|
<script>
|
|
function enviarPeticion() {
|
|
const texto1 = document.getElementById('texto1').value;
|
|
const texto2 = document.getElementById('texto2').value;
|
|
const datos = {
|
|
path: texto1,
|
|
model: texto2
|
|
};
|
|
|
|
fetch('/EvalVoice', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify(datos)
|
|
})
|
|
.then(response => response.json())
|
|
.then(data => {
|
|
document.getElementById('respuesta').innerHTML = JSON.stringify(data, null, 2);
|
|
})
|
|
.catch(error => {
|
|
document.getElementById('respuesta').innerHTML = 'Error: ' + error;
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|
|
"""%(Sal)
|
|
return html
|
|
|
|
|
|
|
|
html_page_evalvoice = Html(evalVoicehtml())
|
|
|
|
HTML = os.path.join(pwd,"html", "index.html")
|
|
file_read = codecs.open(HTML, "r", "utf-8")
|
|
index = file_read.read()
|
|
html_page_index = Html(index)
|
|
|
|
data=pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
|
|
|
|
pages = {
|
|
"/": html_page_index ,
|
|
"getmetricsvoice": Html(html_page_getmetricsvoice),
|
|
"evalvoice":html_page_evalvoice
|
|
}
|
|
|
|
app = Gui(pages=pages)
|
|
if __name__=="__main__":
|
|
app.run(use_reloader=True,port=7882, change_delay=1600)#state.imageActive2,
|