Spaces:
Runtime error
Runtime error
File size: 2,210 Bytes
622f342 de9ce41 622f342 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
"""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)
|