Function signature[source] | |
---|---|
st.audio(data, format="audio/wav", start_time=0, *, sample_rate=None, end_time=None, loop=False, autoplay=False) | |
Parameters | |
data (str, bytes, BytesIO, numpy.ndarray, or file) | Raw audio data, filename, or a URL pointing to the file to load. Raw data formats must include all necessary file headers to match the file format specified via format. If data is a numpy array, it must either be a 1D array of the waveform or a 2D array of shape (num_channels, num_samples) with waveforms for all channels. See the default channel order at http://msdn.microsoft.com/en-us/library/windows/hardware/dn653308(v=vs.85).aspx |
format (str) | The mime type for the audio file. Defaults to "audio/wav". See https://tools.ietf.org/html/rfc4281 for more info. |
start_time (int, float, timedelta, str, or None) | The time from which the element should start playing. This can be one of the following:
|
sample_rate (int or None) | The sample rate of the audio data in samples per second. Only required if data is a numpy array. |
end_time (int, float, timedelta, str, or None) | The time at which the element should stop playing. This can be one of the following:
|
loop (bool) | Whether the audio should loop playback. |
autoplay (bool) | Whether the audio file should start playing automatically. This is False by default. Browsers will not autoplay audio files if the user has not interacted with the page by clicking somewhere. |
Examples
To display an audio player for a local file, specify the file's string path and format.
import streamlit as st st.audio("cat-purr.mp3", format="audio/mpeg", loop=True)You can also pass bytes or numpy.ndarray objects to st.audio.
import streamlit as st import numpy as np audio_file = open("myaudio.ogg", "rb") audio_bytes = audio_file.read() st.audio(audio_bytes, format="audio/ogg") sample_rate = 44100 # 44100 samples per second seconds = 2 # Note duration of 2 seconds frequency_la = 440 # Our played note will be 440 Hz # Generate array with seconds*sample_rate steps, ranging between 0 and seconds t = np.linspace(0, seconds, seconds * sample_rate, False) # Generate a 440 Hz sine wave note_la = np.sin(frequency_la * t * 2 * np.pi) st.audio(note_la, sample_rate=sample_rate)
Still have questions?
Our forums are full of helpful information and Streamlit experts.