-
Notifications
You must be signed in to change notification settings - Fork 31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
real-time example #2
Comments
Hi Alireza, Thanks for asking question. It's interesting. ^^ |
hmm, thanks for the comment, so looks like when I switched to Here is the new code:
here is how I loop over the audio:
Note that i'm just using the pitch shifter and not really changing pitch. just trying to see if the approach of applying this to chunks work. I really need to apply this In realtime. here is the original audio: here is the reconstructed audio: |
1 similar comment
hmm, thanks for the comment, so looks like when I switched to Here is the new code:
here is how I loop over the audio:
Note that i'm just using the pitch shifter and not really changing pitch. just trying to see if the approach of applying this to chunks work. I really need to apply this In realtime. here is the original audio: here is the reconstructed audio: |
You're very right that DIO doesn't work as well as Harvest algorithm. The reason is that DIO sometimes misclassifies voiced/unvoiced (V/UV) frames. In unvoiced frames, F0 is 0 and excitation signal is set to noise. Would you mind trying f0_method = 'swipe'? I realized Harvest is slow and Dio is not as good, so I support another algorithm called Swipe. Hopefully, it's helpful.
Mmm, I will take a look at the program and come back soon. |
Thanks @tuanad121 . This is the error I get when I switch to swipe:
I looked into it f0 is coming up NaN. The function swip() returns an array of NaN for f0 attribute of its return type. The input file is the test-mwm.zip that I included above. Here is how I'm calling vocoder:
|
Thanks @alirezag for pointing it out. I have fixed the problem in Swipe. Basically, the Swipe uses NaN to identify unvoiced frames, while WORLD uses zeros to identify the frames. I failed to set the NaN to zero for the output of Swipe. |
Hi, I'm new to WORLD. IT is obviously an awesome software but I was wondering how I can use it in realtime, since it is the main point of the original paper. I'm doing some like this now, but the result is very choppy:
i'm applying the function to 1024 bytes of the stream that I get. any ideas how I can improve?
The text was updated successfully, but these errors were encountered: