Closed BruceYang-yeu closed 4 years ago
Thank you for your comment.
DIO and Harvest don't support the streaming analysis because they use both the past and future waveform to estimate the F0 in a frame. It is possible to implement the algorithm without the processing in using the future waveform, but its performance would be inferior to the original DIO.
Thanks for your reply.
(This project is great, I am planning to use it in this project :-) hi mmorise, does the DIO algorithm currently support streaming? From the current self-test situation, the results obtained by streaming are different from the results of the entire file input.
handle with full file: ... float *x = new float[x_length]; // wavread() must be called after GetAudioLength(). int fs, nbit; wavread(argv[1], &fs, &nbit, x); DisplayInformation(fs, nbit, x_length); ... F0EstimationDio(x, x_length, &world_parameters);
handle with steam:
... float *x = new float[x_length]; // wavread() must be called after GetAudioLength(). int fs, nbit; wavread(argv[1], &fs, &nbit, x); DisplayInformation(fs, nbit, x_length); ... int sample_step = 2000; for (int i= 0 ; i <= x_length; i += sample_step) { F0EstimationDio(x+i, sample_step, &world_parameters); }
Looking forward to your reply :)