Spaces:
Sleeping
Sleeping
import streamlit as st | |
from bokeh.models.widgets import Button | |
from bokeh.models import CustomJS | |
from streamlit_bokeh_events import streamlit_bokeh_events | |
stt_button = Button(label="Speak", width=100) | |
stt_button.js_on_event("button_click", CustomJS(code=""" | |
var recognition = new webkitSpeechRecognition(); | |
recognition.continuous = true; | |
recognition.interimResults = true; | |
recognition.onresult = function (e) { | |
var value = ""; | |
for (var i = e.resultIndex; i < e.results.length; ++i) { | |
if (e.results[i].isFinal) { | |
value += e.results[i][0].transcript; | |
} | |
} | |
if ( value != "") { | |
document.dispatchEvent(new CustomEvent("GET_TEXT", {detail: value})); | |
} | |
} | |
recognition.start(); | |
""")) | |
result = streamlit_bokeh_events( | |
stt_button, | |
events="GET_TEXT", | |
key="listen", | |
refresh_on_update=False, | |
override_height=75, | |
debounce_time=0) | |
if result: | |
if "GET_TEXT" in result: | |
st.write(result.get("GET_TEXT")) |