PG Music Home
Posted By: dcuny Loch Lomond (Synthetic Vocals) - 05/29/13 10:16 PM
When I posted a song a while back recorded using Sinsy, Don Gaynor had expressed hope that with this sort of technology he'd be able to sing again. While the fine folk at DynaVox haven't gotten back to him yet, I thought I might have a go at solving the problem.

You may have noticed I've been a bit absent from the board since then. blush

Here's the result: Loch Lomond (with harmony)

It's "state of the art" 1980's formant synthesis. It's not the technology I'd intended to use, but that's a rather long story. I'm still working out the bugs in the code. It's not ready for end users, but it's finally "singing."

There's a bit of post-processing on the vocals. I used the PG Vinyl plugin to reduce some of the popping on consonants, and a low-pass filter to kill some of the high-end noise. I've also run things through EZ Mix to add some reverb and compression.

Most of the phonemes are fairly acceptable, but there's an /H/ and /L/ that seem to have gone missing. I've only tweaked one of the phonemes. At 0:15 there's what sounds like a breath noise. It's actually a bug, so I lowered the volume there. (I intend to add support for breaths at some point).

The accompaniment is PJONPBA.STY (PopBalladPiano & Ac.Guitar[85RS]). I guessed at the chords from the sheet music, so there may be some clinkers in there. The harmony is just thirds above the melody, so there may be some clinkers there, too.
Posted By: Don Gaynor Re: Loch Lomond (Synthetic Vocals) - 05/29/13 10:35 PM
I love it David! Thanki, mate!

Now you may understand the difficulty I ran into trying to overcome inertia and reluctance to change on the part of Corporations, especially from ootsiders. Very frustrating and disheartening. It's extremely difficult to keep on slugging when we see no progress. I have several dead-end projects that I am stymied on including "The iPod Project" (qv).
Posted By: dcuny Re: Loch Lomond (Synthetic Vocals) - 05/29/13 11:21 PM
Hopefully, I can shape it into something useful. I've taken a couple of days off work in an effort to get this into shape, and I've just found a major portion of the code that needs to be rewritten.

Once this is stable, I still need to set up some sort of front end for it. The current plan is to have it read MusicXML files. I've got some code I've written for a different project I should be able to re-purpose.

I also need to write some code to do dictionary lookup. I've got a nice hyphenated phonetic dictionary, so hopefully the majority of that work is already done.

But... I still need to stabilize this code.

If you're really lucky, this will give incentive to DynaVox to finish up their project, and you'll get some real voice synthesis. wink
Posted By: seeker Re: Loch Lomond (Synthetic Vocals) - 05/30/13 01:48 AM
David,

This effort you have made into this cutting edge technology is outstanding.
I've spent thousands of hours since the 70's working on coding projects that
had never been done before. Can really appreciate the efforts you have put into
this.

Hang in there and continuing good efforts on your "projects". Note didn't say
good luck. Patience and stamina, be with you.
Posted By: dcuny Re: Loch Lomond (Synthetic Vocals) - 05/30/13 05:42 AM
Originally Posted By: seeker
This effort you have made into this cutting edge technology is outstanding.


Yes, cutting edge 1980's technology at it's best. wink

This is about four generations removed from current voice synthesis technology. You might recall S.A.M. (Software Automatic Mouth), which was the basis of MacInTalk. If you play with the demo on that page (decompiled from assembly into C, and then converted into JavaScript!), you can hear the familial resemblance.

Interestingly, the company that put out S.A.M. is still in business as SoftVoice, Inc., and it was their demo of Twinkle, Twinkle Little Star that convinced me that while formant synthesis might not create realistic results, it might be "good enough" for my purposes. Since they've been doing this for the last 30 years, I think their example is probably as good as this technology gets.
Posted By: boehm Re: Loch Lomond (Synthetic Vocals) - 05/30/13 04:34 PM
Hi David,

a milestone in your efforts. Following your blog I know
what a lot of work this was and still is.

Guenter
Posted By: dcuny Re: Loch Lomond (Synthetic Vocals) - 05/30/13 06:59 PM
The next step it to make this usable.

I'd like to write a UI that displays the music on a staff, and integrates with the CMU phonetic dictionary. Nothing terribly complex - just good enough to "get the job done." It'll output a .wav file, which BiaB can load.

The rest is up to Don. whistle
Posted By: floyd jane Re: Loch Lomond (Synthetic Vocals) - 05/30/13 08:49 PM
David,

I commend you on the effort that this must require. Standing ovation for that, alone. Bravo.

floyd
Posted By: Sundance Re: Loch Lomond (Synthetic Vocals) - 05/31/13 01:27 AM
Kudos David. What a thoughtful thing to do - not to mention all the time and effort involved. I'm sure it will bring Don and others lots of fun in making their music when you're done.
Posted By: dcuny Re: Loch Lomond (Synthetic Vocals) - 05/31/13 04:25 PM
Thanks! smile
Posted By: Noel96 Re: Loch Lomond (Synthetic Vocals) - 05/31/13 09:54 PM
Hi David,

This is amazing! I can't even begin to comprehend the amount of effort that must have been involved. You realize that you'll have to change your signature's saying now! "Loch Lomond" is all about 'voice control' at it's absolute cleverest smile

Regards,
Noel
Posted By: Pat Marr Re: Loch Lomond (Synthetic Vocals) - 06/01/13 04:01 PM
David,

I've got to be honest and say that my (very) first impression of this was that the timing of your presentation couldn't have been worse, considering the fact that Guenter has recently posted some excellent projects using a more advance synthetic voice. Comparisons are inevitable, and you are at a disadvantage being a single developer working for free without any kind of subsidy.

But the more I listen and compare your synth voice to the one Guenter is using, the more impressed I am with yours.

The biggest difference to my ear is that yours has a pronounced artifact where the syllables are joined together, whereas the other engine has figured out a way to blend the syllables more smoothly... which, in a song environment is definitely more musical.

Having dealt with artifacts when blending snippets in a DAW, I have to wonder if it would help to fade each of your separate syllables on both ends so the sharp edge that causes the artifact is less pronounced when they are joined together.

In the final analysis, all comparisons aside, what you have accomplished here is PHENOMEnal! (pun intended)

I wish you much luck with further development and I look forward to hearing more examples as time goes on.
Posted By: Janice & Bud Re: Loch Lomond (Synthetic Vocals) - 06/01/13 06:10 PM
The patience of Job must have gone into that. I can't imagine the code (and I used to do a little programming). Gonna be fascinating to see how it plays out. Thanks.
Posted By: dcuny Re: Loch Lomond (Synthetic Vocals) - 06/01/13 07:19 PM
Hi, Pat.

Thanks for the your response. Before getting into details, I should clarify: this project is just re-implementing what others have already done, and much better than me. From text to speech: The MITalk system (Allen) was a great resource for me. The technology is essentially abandoned for other, better approaches. I'll give an explanation why I was unable to go down that route.

Also, my immediate goal is to get Don something usable. If DynaVox finally gets him a better synthesis program, then, Hurrah!. No need for this program.


I'm aware of the Vocaloid software - I've got the Avanna as well, because it's probably got the best English accent of all the current Vocaloids.

I've also spent a lot of time looking at UTAU, a free synthetic singer written along the lines of Vocaloid.

In fact, my initial approach was exactly what you suggested: record various phonemes (using Vowel/Consonant/Vowel patterns), cross-fade them together, and use pitch shifting.

I've actually written a number of tools to do this. The stumbling block was the pitch shifting. The pitch shifting needs to shift some frequencies (the glottal pulse) and keep others fixed (the formants) or you get the "Mickey Mouse" effect.

BiaB uses the astonishingly good elastiq algorithm. I couldn't find any free libraries that gave decent results - even the RubberBand library, which has formant preservation, didn't do an acceptable job.

I tried FFT-based pitch shifting, but didn't have much luck.

I got better results with PSOLA (Pitch Synchronous Overlap and Add), but there were significant artifacts: Here's an example.


The examples I'd heard of formant-based synthesis convinced me that while it lacked realism, it was capable of creating intelligible and musical synthesis. I think you'll agree that, with some tuning, this synthesizer may not create realistic voices, but they can be understandable.


And to be honest, I've been focused on just getting the code to work. I've spent very little time on fine-tuning the phonemes. This is alpha-software, and there's lots of room for improvement.

That said, in Text-to-Speech Synthesis, Paul Taylor argues that formant-based synthesis is intrinsically un-natural because it can't capture the details of real speech, so I don't hold high hopes for it.

I've considered mixing pre-recorded audio with synthesized sounds like eSpeak, but that raises plenty of issues. And there's still the issue of handling sounds like /B/, /D/ and /G/, which are voiced and consonants. So for the moment, I'm sticking with "pure" synthesis.

I hope that somewhat explains that approach I've taken. Despite the many flaws, I figured it was time to move ahead with the project. For the moment, I'll be focusing on creating a UI.
Posted By: dani48 Re: Loch Lomond (Synthetic Vocals) - 06/02/13 02:36 PM
Hi, David !

I am no expert on these matters
which maybe makes me better judging
the end result from a listeners point of view ?
I am referring to the tune. Maybe I am
partial as this tune has a special meaning
for me. You see, once I sang this song to my
dear wife Beni at the shore of this Loch and little
did I know then, that the words held a prophecy
as "me and my true love would never be allowed
to meet again on the bonnie, bonnie banks of Loch Lomond" !
She died of cancer on October the 26 th 2011 !

I think you have done a marvellous job David !
Keep on the good work !

Cheers
Dani
© PG Music Forums