Recording user Audio when deployed

Can someone please suggest to me how I can record audio from the user side when my Streamlit app is deployed using Streamlit Sharing?

I tried 2 libraries/methods of doing it: SpeechRecognition and using sounddevice but both don’t work when deployed using Streamlit sharing. They both work on my local system.

EDIT: The Bokeh method as mentioned in one of the posts works. But there is no sort of indication that lets the user know that the recording has started. Also, how can I set the duration after which the recording stops automatically?

Thanks