Spaces:
Runtime error
Runtime error
| """Streamlit app""" | |
| from os.path import join, exists, dirname, abspath | |
| from glob import glob | |
| import numpy as np | |
| import pandas as pd | |
| import streamlit as st | |
| import warnings | |
| warnings.simplefilter(action='ignore') | |
| curr_filepath = abspath(__file__) | |
| repo_path = dirname(curr_filepath) | |
| temporal_terms = [ | |
| "then", | |
| "before", | |
| "after", | |
| "followed by", | |
| "preceded by", | |
| "approach", | |
| ] | |
| def make_grid(cols,rows): | |
| grid = [0]*cols | |
| for i in range(cols): | |
| with st.container(): | |
| grid[i] = st.columns(rows) | |
| return grid | |
| if __name__ == "__main__": | |
| # Streamlit app code | |
| st.set_page_config(layout="wide") | |
| st.title("Clips from AudioCaps (possibly of temporal nature) 🎬") | |
| # load data | |
| if "df" not in st.session_state: | |
| splits = ["train.csv", "val.csv", "test.csv"] | |
| dfs = [pd.read_csv(join(repo_path, "data", split)) for split in splits] | |
| df = pd.concat(dfs, axis=0) | |
| # Filter df based on whether the temporal term is in the sentence | |
| indices = df.caption.apply(lambda x: any([term in x for term in temporal_terms])) | |
| df = df[indices] | |
| st.session_state.df = df | |
| else: | |
| df = st.session_state.df | |
| st.markdown(f"**Total number of relevant clips**: {len(df)}", unsafe_allow_html=True) | |
| reload_button = st.button("Reload") | |
| NUM = 9 | |
| indices = np.random.randint(0, len(st.session_state.df), NUM) | |
| if reload_button: | |
| indices = np.random.randint(0, len(st.session_state.df), NUM) | |
| grid = make_grid(3, 3) | |
| per_video_width = 360 | |
| per_video_height = 240 | |
| for i, idx in enumerate(indices): | |
| row = i // 3 | |
| col = i % 3 | |
| video_id = df.iloc[idx].youtube_id | |
| start = df.iloc[idx].start_time | |
| end = start + 10. | |
| url = f"https://www.youtube.com/embed/{video_id}?start={int(start)}&end={int(end)}" | |
| html_code = f""" | |
| <iframe height="{per_video_height}" width="{per_video_width}" src="{url}" frameborder="0" allowfullscreen></iframe> | |
| """ | |
| grid[row][col].markdown(html_code, unsafe_allow_html=True) | |
| grid[row][col].markdown(f"**Caption**: {df.iloc[idx].caption}", unsafe_allow_html=True) | |