This is the development blog for synSinger, and “synthetic singer” computer program.
What Does synSinger Sound Like?
Here’s a link to a recent rendering: Twinkle, Twinkle, Little Star
Why Develop synSinger?
While there are quite a few voice synthesis programs, I wasn’t able to find any specifically targeted to generating a singing voice. synSinger aims to help fill that gap.
I can safely say that no one is going to mistake synSinger for an actual human. However, much like programs such as VocalWriter, I hope that people find it intelligible and pleasant to listen to.
There are several goals for synSinger:
- Free: synSinger will be a free, Open Source application. (I still need to choose a license).
- Easy To Use: The primary means of inputting data into synSinger is MusicXML, a common format shared by many applications. It also supports a simple plain text format of my own design.
- Musical Intelligence: Like Sinsy, synSinger applies heuristics to generate musical output. For example, it knows how to shape a musical phrase and apply vibrato.
- American English: While there’s nothing preventing support for other languages, synSinger is currently focused on an American English accent.
Where’s Can I Find It?
synSinger is very much pre-alpha software – it’s not yet usable by the general public, and the code and executable has not yet been released.
Once it’s past beta, I’ll post it on SourceForge, although I’m considering other sites given some of the bad behavior SourceForge has engaged in in the past.
A Bit Of History
I’d initially planned on making synSinger as a sample-based application, along the lines of Vocaloid and UTAU. However, I was unable to find any good open-source pitch-shifting libraries that also did formant preservation, and I wasn’t been happy with the quality of my own routines using FFT or PSOLA.
As a result, I’m implemented synSinger using formant synthesis. There’s lots of room for improvement, but it’s pretty legible. If you’ve heard Software Automatic Mouth or MacIntalk, you know what this sounds like.
Over time, I’ve coded synSinger in quite a number of different programing languages – Java, C, and even OpenEuphoria for reasons that seemed good at the time.
Currently, it’s being coded in Lua, and it seems to run quite well with luajit.
When Will It Be Ready?
That depends on how good it sounds. It’s currently working fairly well, and I’m in the process of trying to getting some beta testers to hammer on it and see if they can break it.
Assuming that there are no showstoppers, I hope to release it in early 2017.