gradio
gradio copied to clipboard
Gradio microphone input forwards empty values on Spaces
Describe the bug
Using the microphone input on Spaces is temperamental, often forwarding empty inputs to our function.
Response from @abidlabs:
So my hunch is that the audio component takes a little while to upload the recording to the backend and update its value. If you click the button before the audio upload is incomplete, then it will just send an empty value instead
This is going to be more pronounced on Spaces since there's additional latency involved in uploading the audio file
My suggestion would be to keep the button non-interactive and then define an
audio.upload()
event (that triggers after the upload is complete) to make the generate audio button interactive
Have you searched existing issues? 🔎
- [X] I have searched and found no existing issues
Reproduction
Created a reproducible example to showcase this: https://huggingface.co/spaces/sanchit-gandhi/audio-component
In this demo, we expect the audio output component to return the same audio that we input (i.e. an identity function).
However, we see that the microphone input isn’t passed to the function in our demo, and thus the audio output is None
If you run this locally, you’ll find that the microphone input is passed to the identity function in our demo, and that it is returned as the output as expected
Screenshot
https://github.com/gradio-app/gradio/assets/93869735/8ceb7487-ad6f-4c5a-99f2-6a2eb20f06b9
Logs
No response
System Info
Gradio Environment Information:
------------------------------
Operating System: Darwin
gradio version: 4.28.3
gradio_client version: 0.16.0
------------------------------------------------
gradio dependencies in your environment:
aiofiles: 23.2.1
altair: 5.3.0
fastapi: 0.110.2
ffmpy: 0.3.2
gradio-client==0.16.0 is not installed.
httpx: 0.26.0
huggingface-hub: 0.22.1
importlib-resources: 6.1.1
jinja2: 3.1.3
markupsafe: 2.1.5
matplotlib: 3.8.3
numpy: 1.26.4
orjson: 3.10.1
packaging: 23.2
pandas: 2.2.0
pillow: 10.2.0
pydantic: 2.7.1
pydub: 0.25.1
python-multipart: 0.0.9
pyyaml: 6.0.1
ruff: 0.4.1
semantic-version: 2.10.0
tomlkit==0.12.0 is not installed.
typer: 0.12.3
typing-extensions: 4.9.0
urllib3: 2.2.1
uvicorn: 0.29.0
authlib; extra == 'oauth' is not installed.
itsdangerous; extra == 'oauth' is not installed.
gradio_client dependencies in your environment:
fsspec: 2023.10.0
httpx: 0.26.0
huggingface-hub: 0.22.1
packaging: 23.2
typing-extensions: 4.9.0
websockets: 11.0.3
Severity
I can work around it