| | 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) |
| |
|
| | |
| | |
| | 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() |
| |
|
| | |
| | |