Spaces:
Sleeping
Sleeping
Mod: Cache candidate results in memory to avoid re-computation.
Browse files
app.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
| 2 |
# -*- coding: utf-8 -*-
|
| 3 |
|
| 4 |
from tempfile import NamedTemporaryFile
|
|
|
|
| 5 |
|
| 6 |
import streamlit as st
|
| 7 |
|
|
@@ -14,7 +15,8 @@ def load_conette(*args, **kwargs) -> CoNeTTEModel:
|
|
| 14 |
|
| 15 |
|
| 16 |
def main() -> None:
|
| 17 |
-
st.header("
|
|
|
|
| 18 |
model = load_conette(model_kwds=dict(device="cpu"))
|
| 19 |
|
| 20 |
task = st.selectbox("Task embedding input", model.tasks, 0)
|
|
@@ -34,6 +36,7 @@ def main() -> None:
|
|
| 34 |
model.config.max_pred_size,
|
| 35 |
)
|
| 36 |
|
|
|
|
| 37 |
audios = st.file_uploader(
|
| 38 |
"Upload an audio file",
|
| 39 |
type=["wav", "flac", "mp3", "ogg", "avi"],
|
|
@@ -45,14 +48,24 @@ def main() -> None:
|
|
| 45 |
with NamedTemporaryFile() as temp:
|
| 46 |
temp.write(audio.getvalue())
|
| 47 |
fpath = temp.name
|
| 48 |
-
|
| 49 |
-
|
| 50 |
task=task,
|
| 51 |
beam_size=beam_size,
|
| 52 |
min_pred_size=min_pred_size,
|
| 53 |
max_pred_size=max_pred_size,
|
| 54 |
)
|
| 55 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
st.write(f"Output for {audio.name}:")
|
| 58 |
st.write(" - ", cand)
|
|
|
|
| 2 |
# -*- coding: utf-8 -*-
|
| 3 |
|
| 4 |
from tempfile import NamedTemporaryFile
|
| 5 |
+
from typing import Any
|
| 6 |
|
| 7 |
import streamlit as st
|
| 8 |
|
|
|
|
| 15 |
|
| 16 |
|
| 17 |
def main() -> None:
|
| 18 |
+
st.header("Describe audio content with CoNeTTE")
|
| 19 |
+
|
| 20 |
model = load_conette(model_kwds=dict(device="cpu"))
|
| 21 |
|
| 22 |
task = st.selectbox("Task embedding input", model.tasks, 0)
|
|
|
|
| 36 |
model.config.max_pred_size,
|
| 37 |
)
|
| 38 |
|
| 39 |
+
st.write("Recommanded audio: lasting from 1s to 30s, sampled at 32 kHz.")
|
| 40 |
audios = st.file_uploader(
|
| 41 |
"Upload an audio file",
|
| 42 |
type=["wav", "flac", "mp3", "ogg", "avi"],
|
|
|
|
| 48 |
with NamedTemporaryFile() as temp:
|
| 49 |
temp.write(audio.getvalue())
|
| 50 |
fpath = temp.name
|
| 51 |
+
|
| 52 |
+
kwargs: dict[str, Any] = dict(
|
| 53 |
task=task,
|
| 54 |
beam_size=beam_size,
|
| 55 |
min_pred_size=min_pred_size,
|
| 56 |
max_pred_size=max_pred_size,
|
| 57 |
)
|
| 58 |
+
cand_key = f"{audio.name}-{kwargs}"
|
| 59 |
+
|
| 60 |
+
if cand_key in st.session_state:
|
| 61 |
+
cand = st.session_state[cand_key]
|
| 62 |
+
else:
|
| 63 |
+
outputs = model(
|
| 64 |
+
fpath,
|
| 65 |
+
**kwargs,
|
| 66 |
+
)
|
| 67 |
+
cand = outputs["cands"][0]
|
| 68 |
+
st.session_state[cand_key] = cand
|
| 69 |
|
| 70 |
st.write(f"Output for {audio.name}:")
|
| 71 |
st.write(" - ", cand)
|