AudioBench-Leaderboard / app /show_examples.py
zhuohan-7's picture
Upload folder using huggingface_hub
11356c3 verified
raw
history blame
5.64 kB
import streamlit as st
import datasets
import numpy as np
def show_examples(category_name, dataset_name, model_lists):
st.divider()
sample_folder = f"./examples/{category_name}/{dataset_name}"
dataset = datasets.load_from_disk(sample_folder)
for index in range(len(dataset)):
with st.container():
st.markdown(f'##### EXAMPLE {index+1}')
col1, col2 = st.columns([0.3, 0.7], vertical_alignment="center")
with col1:
st.audio(f'{sample_folder}/sample_{index}.wav', format="audio/wav")
with col2:
with st.container():
custom_css = """
<style>
.my-container-question {
background-color: #F5EEF8;
padding: 10px;
border-radius: 10px;
height: auto;
}
</style>
"""
st.markdown(custom_css, unsafe_allow_html=True)
if dataset_name in ['CN-College-Listen-MCQ-Test', 'DREAM-TTS-MCQ-Test']:
choices = dataset[index]['other_attributes']['choices']
if isinstance(choices, str):
choices_text = choices
elif isinstance(choices, list):
choices_text = ' '.join(i for i in choices)
question_text = f"""<div class="my-container-question">
<p>QUESTION: {dataset[index]['instruction']['text']}</p>
<p>CHOICES: {choices_text}</p>
</div>
"""
else:
question_text = f"""<div class="my-container-question">
<p>QUESTION: {dataset[index]['instruction']['text']}</p>
</div>"""
st.markdown(question_text, unsafe_allow_html=True)
with st.container():
custom_css = """
<style>
.my-container-answer {
background-color: #F9EBEA;
padding: 10px;
border-radius: 10px;
height: auto;
}
</style>
"""
st.markdown(custom_css, unsafe_allow_html=True)
st.markdown(f"""<div class="my-container-answer">
<p>CORRECT ANSWER: {dataset[index]['answer']['text']}</p>
</div>""", unsafe_allow_html=True)
# st.divider()
with st.container():
custom_css = """
<style>
.my-container-table {
background-color: #F2F3F4;
padding: 10px;
border-radius: 5px;
# height: 50px;
}
</style>
"""
st.markdown(custom_css, unsafe_allow_html=True)
model_lists.sort()
s = ''
if dataset_name in ['CN-College-Listen-MCQ-Test', 'DREAM-TTS-MCQ-Test']:
for model in model_lists:
try:
s += f"""<tr>
<td>{model}</td>
<td><p>{dataset[index][model]['text']}</p> <p>{choices_text}</p></td>
<td>{dataset[index][model]['model_prediction']}</td>
</tr>"""
except:
print(f"{model} is not in {dataset_name}")
continue
else:
for model in model_lists:
try:
s += f"""<tr>
<td>{model}</td>
<td>{dataset[index][model]['text']}</td>
<td>{dataset[index][model]['model_prediction']}</td>
</tr>"""
except:
print(f"{model} is not in {dataset_name}")
continue
body_details = f"""<table style="width:100%">
<thead>
<tr style="text-align: center;">
<th style="width:20%">MODEL</th>
<th style="width:40%">QUESTION</th>
<th style="width:40%">MODEL PREDICTION</th>
</tr>
{s}
</thead>
</table>"""
st.markdown(f"""<div class="my-container-table">
{body_details}
</div>""", unsafe_allow_html=True)
st.text("")
st.divider()