Topics

[espeak-ng:master] reported: singing synthesis #github


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Pull Request #749 singing synthesis
By valdisvi:

As Eric S. Raymond said, "Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected". I'm glad you could use eSpeak NG for your tricky problem. But I hesitate to add proposed complexity into the main project. It would be much better, if input parameters could set actual frequency and length of the phrase and provide something like manageable MBROLA input as an output, because that could could be usable (probably with simple transformations) for other (preferably, open source) speech synthesis tools. Maybe @rhdunn can also comment on this.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Pull Request #749 singing synthesis
By tplaten:

The patch keeps most of the complexity outside of espeak-ng. As an example the MusicXML parsing is not done by espeak-ng but by Sinsy. Sinsy will then invoke espeak-ng for each note with parameters that set the frequency and the note velocity. In the last step an external NU-MBROLA compatible engine will change the length of the phrase. This one is based on mage-legacy's OlaBuffer and code I have written in the last years.


espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Pull Request #749 singing synthesis
By tplaten:

The patch keeps most of the complexity outside of espeak-ng. As an example the MusicXML parsing is not done by espeak-ng but by Sinsy. Sinsy will then invoke espeak-ng for each note with parameters that set the frequency and the note velocity. In the last step an external NU-MBROLA compatible engine will change the length of the phrase. This one is based on mage-legacy's OlaBuffer and code I have written in the last years. The behaviour of espeak-ng is only changed if singing mode is enabled by selecting a note pitch by calling espeak_sg_SetUtauNote or espeak_sg_SetUtauNoteFreq.