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