gradio-app / gradio

Build and share delightful machine learning apps, all in Python. 🌟 Star to support our work!
http://www.gradio.app
Apache License 2.0
33.79k stars 2.56k forks source link

Audio still doesn't fully play in iOS device #2987

Closed abidlabs closed 1 year ago

abidlabs commented 1 year ago

Reported by @MaxBrodeurUrbas in PR #2961:

Here are two repro videos (one chrome, another safari on same device). In both attempts the audio does not play back after being recorded and the reversed audio is a fraction of the original submitted audio. When tested yesterday however on the same device no audio was returned at all.

https://user-images.githubusercontent.com/35381493/212589945-a974e4ea-eb18-4bf0-b5e0-a1df76007e28.mp4

https://user-images.githubusercontent.com/35381493/212590428-0c675861-f4f7-4b8a-98ce-f5a08bc02ac5.mp4

Originally posted by @MaxBrodeurUrbas in https://github.com/gradio-app/gradio/issues/2961#issuecomment-1383400478

MaxBrodeurUrbas commented 1 year ago

I now realize the videos don't capture me speaking as a I record. For context, I recorded myself counting to 12 in the second repro video but the reversed audio returned was a very small slice of that original recording. It seems like only a fraction of voice audio is being processed.

abidlabs commented 1 year ago

That's helpful to know. I'm seeing this behavior as well now with recorded audio, cc @aliabid94

aliabid94 commented 1 year ago

Taking a look!

aliabid94 commented 1 year ago

I've only been able to reproduce this in in the "All Demos" Space https://huggingface.co/spaces/gradio-pr-deploys/pr-3197-all-demos. When running the reverse_audio independently as a Space (as I've done here: https://huggingface.co/spaces/aliabid94/fake_gan_2) or launching the reverse_audio/run.py locally and setting share=True so I can run it on an iPhone, both seem to work.

Can you confirm @MaxBrodeurUrbas whether this is true for you as well? I believe there's something broken about audio recording specifically in the context of Blocks-within-Blocks as done in the "All Demos" Space on iOS (which would be a lower priority issue than audio recording being broken on iOS in general)

hwberry2 commented 1 year ago

I am also experiencing this behavior. My app takes input from the “microphone” component and send the audio output to an “audio” component and the text to a “text” component. Works as expected on Chrome OS. On iOS, only fractions of the input are captured, which is reflected in the input. Each attempt reflects an exponential decay in the amount of audio being captured. My code is also running on Hugging Face.

abidlabs commented 1 year ago

Hi @hwberry2 would you be able to share a link to your Space, if it's public? Will help us as we tackle the issue

hwberry2 commented 1 year ago

Hi @hwberry2 would you be able to share a link to your Space, if it's public? Will help us as we tackle the issue

Sure. Here is the repo on Hugging Face: https://huggingface.co/spaces/hwberry2/chatGPTvoice

hwberry2 commented 1 year ago

I refactored my code and changed the way I was loading audio…but same issue. On my iOS devices (iPad/iPhone) it records about the first three words of every sentence.

https://huggingface.co/spaces/hwberry2/WhisperDemo/tree/main

aliabid94 commented 1 year ago

taking a look now!

hwberry2 commented 1 year ago

I moved the app to this location: https://huggingface.co/spaces/hwberry2/WhisperDemo

I tested again and the issue is still present. I am not able to verify on other mobile devices, but the app functions normally on the web (tested on Chrome, using ChromeOS and Windows). Still love Gradio!!! Keep up the good work!

hwberry2 commented 1 year ago

I'm also noticing that I am unable to hear the audio, when I try to play back the recording on my device. However, it is clear that the recording is complete, because of the length of the recording and the transcript that is (partially) produced.

Alanp777 commented 1 year ago

@aliabid94 @abidlabs I know why audio files wont play in Safari, this is an audio file link generated from my gradio app "data:audio/wav;base64,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" it comes from HTTP, although my gradio app is hosted on HTTPS like all the other spaces, the audio source is generated by HTTP just as this link shows, chrome tends to be less restrictive but if you copy paste the audio source of any gradio space it wont let you play in safari, now not sure how to fix this maybe adding HTTPS from the very app itself?

aliabid94 commented 1 year ago

Turns out the issue is with audio recording on Safari being encoded in a way that FFMPEG on spaces is not able to parse. This is specific to the FFMPEG version tied to Python 3.8.9, the default python version used on spaces. Setting the python version to >=3.9 on spaces fixes this problem (add the line python_version: 3.10 to the metadata in README.md). Soon we will bump the default python version on spaces so this won't be necessary.

abidlabs commented 1 year ago

I've duplicated your Space here @hwberry2 and confirmed that it works properly if you set the Python version to be 3.9: https://huggingface.co/spaces/abidlabs/audiotest4