Integrate audio from a numpy array

Hello, I have a numpy array describing an audio and the sampling rate, but I don’t have the original file.

I am trying to integrate this audio with streamlit with st.audio.

When I directly pass the array to st.audio, it displays an audio bar with no error, but I can’t play any sound.

Here, it is said “Numpy arrays and raw data formats must include all necessary file headers to match specified file format”.
However, no examples are provided to explain how to do it.

Can you explain how to do it?
Thanks

Hi @HugoLaurencon -

What the documentation is trying to indicate is that you can pass bytes to st.audio, but those bytes still have to conform to some standard file format. So you can pass a .wav file as bytes, but it has to be a valid .wav file to be auto-recognized by the player.

The expectation is that users of this doing audio processing will use an Python audio library to create their valid files, there is no way within Streamlit to specify the headers.

Best,
Randy