mmorise / World

A high-quality speech analysis, manipulation and synthesis system
http://www.kisc.meiji.ac.jp/~mmorise/world/english
Other
1.17k stars 251 forks source link

x2x : error: input data is over the range of type 'float'! #48

Closed dreamk73 closed 6 years ago

dreamk73 commented 6 years ago

I have been able to use 16kHz audio to synthesize using the WORLD vocoder. But now I would like to try with the original waveforms which are 48kHz. But whenever I extract parameters from that audio I get this message for most if not all of the files:

x2x : error: input data is over the range of type 'float'!

Is there some way to convert the audio so that I don't get this error anymore? I tried to use 'sox -v 0.65' to get the dynamic range in the waveform to be the same as my 16kHz recordings, but it does not seem to help.

mmorise commented 6 years ago

Thank you for your question.

The function x2x is not the WORLD function, and I found it as the SPTK command. https://github.com/georgiee/lip-sync-lpc/blob/master/sptk/SPTK-3.5/bin/x2x/x2x.c

It seems that the amplitude of the input is inappropriate. The error message is displayed in cases where the absolute amplitude is over FLT_MAX (3.402823e+38). Since the amplitude isn't exceed such value generally, I think that you used an inappropriate option. As a result, the amplitude might be destroyed.

dreamk73 commented 6 years ago

Thank you for your response. I realize that x2x is not part of the WORLD function. But I do find it typical that when I use the analysis.cpp script in the Merlin distribution, I don't get any errors. But when I use the analysis script from this github distribution, I do get this error.

Also, when I look at the audio files in a waveform editor, I don't see any files that exceed the absolute amplitude. Because of this error, the mgc files are empty.

mmorise commented 6 years ago

Sorry for my late reply.

I have a question. When did you get this error message? If you got this error before carrying out the WORLD analysis, it is the error in reading the .wav file. So, the .wav read functions in WORLD would have an error. If you got it during WORLD analysis, please give me the timing you got it.

I think that since the WORLD analyzer does not include the function x2x, the main problem is in the .wav reader.