Introducing FRAM, the Sonic Pi Speech Synthesizer!

So I’ve already posted this in a thread in the “Development” tag because I thought the program might have been having some sort of buffer underruns, but now I think it’s more my own sloppy code than anything. Anyway, a week or so ago I decided I’d try making a formant filter (I know Sonic Pi has one built in, but it wasn’t able to glide between vowels). The project ended up growing more complex and that, and long story short now I have a prototype cascade formant synthesizer written in Sonic Pi called FRAM (not for any particular reason). It sounds…about like you’d expect it to, and I’m still struggling with trying to get it to sing on time, so I figured that I’d post the code here if anyone wanted to check it out and see if there’s anything I could do better. Thanks!

4 Likes

Right, it sounds like from a distant past … 50 years ago

1 Like

I mean hey, the Votrax chips worked for Kraftwerk. I LIVE for this kind of thing. :slight_smile:

1 Like

This is a fantastic bit of work, I’m definitely going to incorporate this somehow! :smiley:

1 Like

oh dope! i’d LOVE to see what you do with it

Would someone possibly support/help me defining other words in FRAM?

Actually I was looking forward to try it out by replicating
the vocals of man machine .
But it seems quite hard to me to get reasonable results.
Would I need to add more vowles to the :klatt_vowels function?
Or more init_consonant’s to :klatt?

define :man do |note1, note2|
  klatt_diphones note1, 0, "MM", "AH", 0, 0.125, 0.3, 0.5
  sleep 0.5
end

define :machine do |note1, note2|
  klatt_diphones note1, 0, "MM", "EH", 0, 0, 0.125, 0.5
  sleep 0.5
  klatt_diphones note2, "S", "IH", "IH", "EH", 0, 0.25, 0.5
end

sleep 0.1
man 34, 34  # I did not find a 'sound' for the n-consonant
sleep 0.5

in_thread do
  34.step(48,2).each do |n|
    sleep 0.1
    machine n, n
    sleep 0.5
  end
end

I would like to get the words:

man
machine

semi
human
being

man
machine

super
human
being

..
man
machine
..

die
mensch
maschine
halb
wesen
und
halb
ding

die
mensch
maschine
halb
wesen
und
halb
über
ding

mensch
maschine
halb
wesen

Many thanks for any more information
concerning this.