Dash Audio Recorder Component
Project description
Dash Audio Recorder
A professional and customizable audio recording component for Plotly Dash. This component allows users to record audio directly from their browser's microphone, visualize the audio as a waveform in real-time, and send the data back to Python for processing.
Key Features
- Real-time Waveform: Visualize audio input as it happens.
- Two UI Modes: Support for both a discrete
smallview and an immersivefullscreenrecording experience. - Flexible Interaction: Choose between
hold(Push-To-Talk) orclickto toggle recording modes. - Memory Efficient: Sends audio data as a Base64 string directly to Dash, allowing for lightning-fast handling via
dcc.Storewithout mandatory disk writes. - Customizable Formats: Specify preferred MIME types (e.g.,
audio/webm,audio/mp4).
Installation
Install the package via pip:
pip install dash-audio-recorder
### Quick Start
Here is a minimal example of how to use the component in a Dash application.
import dash_audio_recorder
from dash import Dash, html, Input, Output, callback
app = Dash(__name__)
app.layout = html.Div([
html.H2("Dash Audio Recorder Demo"),
dash_audio_recorder.DashAudioRecorder(
id='audio-recorder',
audioType='audio/webm',
visualMode='fullscreen', # Options: 'fullscreen', 'small'
recordMode='hold' # Options: 'hold', 'click'
),
html.Div(id='output-status', style={'marginTop': '20px'}),
html.Audio(id='audio-player', controls=True, style={'marginTop': '10px'})
])
@callback(
Output('audio-player', 'src'),
Output('output-status', 'children'),
Input('audio-recorder', 'audioData')
)
def handle_audio(audio_data):
if not audio_data:
return "", "Waiting for recording..."
# audio_data is a base64 string that can be used directly as a source
return audio_data, "Recording received! You can play it back below:"
if __name__ == '__main__':
app.run_server(debug=True)
### Component Properties (Props)
Prop,Type,Default,Description
id,string,None,The ID used to identify this component in Dash callbacks.
audioData,string,None,The recorded audio data as a Base64 encoded string. Read-only from Python.
audioType,string,'audio/webm',"The MIME type for the audio recording (e.g., audio/webm, audio/mp4)."
visualMode,string,'fullscreen',UI style: 'fullscreen' (overlay) or 'small' (inline block).
recordMode,string,'hold',Interaction style: 'hold' (push-to-talk) or 'click' (toggle).
### License
This project is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dash_audio_recorder-0.0.3.tar.gz.
File metadata
- Download URL: dash_audio_recorder-0.0.3.tar.gz
- Upload date:
- Size: 19.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
501678448967dca59aaa18eada738f1fa9fb4d77643c2ac661d70746f56dacaa
|
|
| MD5 |
2c8944742a1c9d247cbe1342ea10dc8c
|
|
| BLAKE2b-256 |
23c40eea07a670bf6aa54007c4f6919dc316d3663b8eb887461099860758fab6
|
File details
Details for the file dash_audio_recorder-0.0.3-py3-none-any.whl.
File metadata
- Download URL: dash_audio_recorder-0.0.3-py3-none-any.whl
- Upload date:
- Size: 20.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4bed76062a40233633158749ad007cff9933d311ca72886975d3996e314dc09
|
|
| MD5 |
87cfe689f440a081c378ed082099ef6f
|
|
| BLAKE2b-256 |
21fe1f0f52d86095eb72b548465cb2b87eedf3e5a0f5b1eb513b2856f767ed6c
|