I listen to a lot of music - But, "Studying Music" is one of those things that is beyond my reach. Despite that handicap, I can tell this is great work - keep up the voyage!
BTW, did not know that you are music savvy also
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"any small object, accidentally dropped, goes and hides behind a larger object."
Paul said...
Chip, so you didn't have a chorus of monks sing "seven"?
"Seven" was Chip's test vector for improving the quality of the vocal tract, so our side of the building has been filled with the sounds of "seven" for months now.
Excuse my 'ignorance', but what is this "Seven", some sort of 'music'?___ Used Wikipedia, but didn't notice anything to do with music that registered. Oh, there were lots of references to numbers, astronomy, religion, etc.
Were the 'monks' singing Latin or gibberish?___ I'd sure like to hear some spoken English in .mp3 format. I suppose one could also fairly easily make it speak nearly any language?
Have you listened to the mp3 I posted? Seven is 7 the number, it was his test word for the synth that we heard tens to hundreds of times daily as he worked on the project, so I was joking about it. Spoken and sung is identical except the way the vocal tract is excited. Definition of the speech cookbooks will likely fall upon those Parallax customers who choose to pick up the ball on this. But Chip and/or I will explain the method he used to pick out the required formants for those that want additional words.
Paul said...
Have you listened to the mp3 I posted? Seven is 7 the number, it was his test word for the synth that we heard tens to hundreds of times daily as he worked on the project, so I was joking about it. Spoken and sung is identical except the way the vocal tract is excited. Definition of the speech cookbooks will likely fall upon those Parallax customers who choose to pick up the ball on this. But Chip and/or I will explain the method he used to pick out the required formants for those that want additional words.
Yes, I did listen to the mp3 file. I'm going to have to add the components to have the 'audio' on my PropSTICK. "Seven" 'spoken' hundreds of times in the lab or office can be stressful. But that's what is involved in trying to make something work right. Thanks for clearing up my misunderstanding. Great work going on at Parallax. Love the Propeller.
I don't have my Prop totally finished yet but I can't wait to get this going. I haven't been able to read through all the source (still learning Spin) but it sounds like you are getting 3-4 voices (not speech but channels) going at once with ONE cog?
So two cogs running 4 channels each could easily get me 8 voices? Man, I think this single chip is goint to handle everything for my homebrew computer. I can't wait until that 1 Mhz 6502 is driving this Propeller....hahaha
I haven't been able to read through all the source (still learning Spin) but it sounds like you are getting 3-4 voices (not speech but channels) going at once with ONE cog?
So two cogs running 4 channels each could easily get me 8 voices?
It actually uses a whole·COG·for each of the four·voices.·Another COG is running the stereo spatializer (which processes the·four "channels"). A final COG·is running Spin code to control everything.
So that would be 6 cogs in all? So, I could add one more cog, get 5 channels (voices) which would take me to 7 cogs and then the 8th cog could be used to communicate with the rest of the homebrew computer? That's still not too bad for an 8 bit computer.
It looks like my homebrew computer is going to have three propellers! (audio/video/IO) hehehe
Through some playing around with the vocal tract, it seems there is a need to provide some type of variable setting to adjust the amplitude. To make it simple, just an attack and release. Letters like P are short and abrupt, where as H is soft and sustained. It seems just a timing operation on the rise and fall of the amplitude could do this.
If there is something there already, i do not see it.
kelvin james said...
Through some playing around with the vocal tract, it seems there is a need to provide some type of variable setting to adjust the amplitude. To make it simple, just an attack and release. Letters like P are short and abrupt, where as H is soft and sustained. It seems just a timing operation on the rise and fall of the amplitude could do this.
If there is something there already, i do not see it.
kelvin
Yeah, you just change whatever parameter(s) need changing and then tell it the amount of time to make the transition(s) in. It will linearly glide from the last set of parameters to the new set of parameters over the time you specified. If you don't change any parameters and just do a go(time), it will sustain the last settings for the specified amount of time.
I'm feeling like a bit of a dunce, can someone suggest some parameters to get a basic tone out of the vocal tract, I was trying to just enter them in one after another and then run .go. I seem to get white noise or a mess. A super simple example would be great, I don't know what I am doing wrong.
Graham Stabler said...
I'm feeling like a bit of a dunce, can someone suggest some parameters to get a basic tone out of the vocal tract, I was trying to just enter them in one after another and then run .go. I seem to get white noise or a mess. A super simple example would be great, I don't know what I am doing wrong.
Graham, about the f1-f4 parameters, you need to keep 'em separated, lest overflow occurs and you wind up with piercing noise. Here is a short example taken out of the spatializer demo:
CON _clkmode = xtal1 + pll16x ···_xinfreq = 5_000_000
OBJ v : "VocalTract"
VAR byte· aa,ga,gp,vp,vr,f1,f2,f3,f4,na,nf,fa,ff
PUB start
· v.start(@aa, 10, 11, -1)··· 'start vocal tract,·output to pins 10 and 11
· gp := 88··················· 'set pitch to·F# · f1 := constant(670 / 19)····'set "uh" sound··· · f2 := constant(1160 / 19)···'(This is the exact·noise I make when I'm · f3 := constant(2600 / 19)···'trying to answer a question.) · f4 := constant(3100 / 19) · vp := 20··················· 'add some vibrato for dramatic flare · vr := 10 · v.go(0)···················· 'transition to settings as fast as possible
· ga := 50····················'set·glottal amplitude · v.go(5000)················· 'ramp up glottal amplitude slowly
Chip.
Is it possible to change nf, na to get better sound in Spanish words ?? could be correct changing those two parameters ??
I'm begining, and it so difficult for me, to locate, where do you post their initial values..
BTX said...
Chip.
Is it possible to change nf, na to get better sound in Spanish words ?? could be correct changing those two parameters ??
I'm begining, and it so difficult for me, to locate, where do you post their initial values..
Alberto.
I don't think·the nf/na parameters would be especially unique in Spanish, but I do think that rapidly repeating short sequences could generate sounds like rolled r's.
Did you read that Computalker link? It's a bit of investment, but worth it. If you digest that, and then play with that spectograph program, you will start to see how all this ties together.
You can always experiment, and just see what you get, but I think that understanding the spectral nature of speech·is critical. On this thread you should see links I posted to other resources, including that spectograph program.
No I didn't Chip, but I will, and try to understand it.
I thought that computalker only works on English phonetics.......sorry, like I said I wil read it first.
No I didn't Chip, but I will, and try to understand it.
I thought that computalker only works on English phonetics.......sorry, like I said I wil read it first.
Thanks so much.
Though the Computalker was probably designed with English in mind, it should be capable of making sounds from any language, as it models the vocal tract. I would imagine that to do some dialects especially well, some optimization to a simple vocal tract model might be in order, but you could get well in the ball-park with a simple model.
Thanks Chip, I think I must have had overlapping formants. I also hadn't checked out the spatializer because all my mice are at work (don't ask). I'm hoping to analyse my own voice a bit and get Phil's speech object sounding more like me.
I'm not sure how useful this will prove but I've made a program for TV and keyboard so you can fiddle with the parameters and see the effects. Might be handy for tweaking.
I looked at your code, but didn't run it because I didn't have a tv and keyboard hooked up. It looks great, though.
Your program is·a good idea for allowing people to get a quick handle on what the various parameters do. I noticed that you were stepping the frequencies by 100Hz (~5 unit steps). What about stepping by $10 and using shift-key to step by $01. That way, they could try the entire 8 bits of range out without too much typing. This would be good for finding the 'ga' limit for a set of formants, for example. You would have to show the parameter value, and maybe its translated unit value.
Anyway, thanks for posting this code. I will try it later.
Graham Stabler said...
I'm not sure how useful this will prove but I've made a program for TV and keyboard so you can fiddle with the parameters and see the effects. Might be handy for tweaking.
Thanks for the link too.· I really enjoy digging into something the texts from the early days of computing.· There are some real gems buried in there.· I just bought the origial Dr Drobbs with Li-Chen Wang's Tiny Basic listing in it.· I don't have any plans for it but it's just wonderful to read.
Thanks Chip, I'll definately make those changes, I've just found an old PS2 keyboard, I think I'm going to mark it out with the controls.
I've now produced spectrums for all of the sounds of my voice needed in Phil's program, I used a program called Spectrogram that I downloaded (10 day free trial) so I'll be trying to build up the sounds. One problem I have found so far is that the first Formant for a Yorkshireman seems rather lower than for the average American (though my voice is not all that deep) I always seem to have to lower ga a lot so it doesn't complain.
I got some interesting stuff from the library (took my camera) which I'll share as time allows.
Does anyone know why the VocalTract library squeaks/pops/hisses and does other nasty things when you attemp certain frequency combinations?· For instance, I'm attempting to create· the "oo" (F1=425, F2=2000, F3=2400,F4=3000) vowel sound and I have to lower the gutteral (gp) to around 60 or 65hz.· This means female voices are out of the question.· Is there any way to rectify this to get more natural higher pitched sounds??
Comments
This is totally awesome, I don't understand it but I really want to. I'll be loading that site on my Sony reader when it comes next week.
Graham
p.s. Yes I know I just dropped that note about the Sony reader in without provocation but I'm excited!!
this is awesome!!
I listen to a lot of music - But, "Studying Music" is one of those things that is beyond my reach. Despite that handicap, I can tell this is great work - keep up the voyage!
BTW, did not know that you are music savvy also
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
"any small object, accidentally dropped, goes and hides behind a larger object."
ALIBE - Artificial LIfe BEing. In search of building autonoumous land robot
http://ALIBE.crosscity.com/
·
Were the 'monks' singing Latin or gibberish?___ I'd sure like to hear some spoken English in .mp3 format. I suppose one could also fairly easily make it speak nearly any language?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko
h.a.s. designn
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Harley Shanko
h.a.s. designn
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
I don't have my Prop totally finished yet but I can't wait to get this going. I haven't been able to read through all the source (still learning Spin) but it sounds like you are getting 3-4 voices (not speech but channels) going at once with ONE cog?
So two cogs running 4 channels each could easily get me 8 voices? Man, I think this single chip is goint to handle everything for my homebrew computer. I can't wait until that 1 Mhz 6502 is driving this Propeller....hahaha
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Coders' Hangout
A place for programmers to hangout!
http://www.codershangout.com
METROID?
Metroid Classic
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
It looks like my homebrew computer is going to have three propellers! (audio/video/IO) hehehe
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Coders' Hangout
A place for programmers to hangout!
http://www.codershangout.com
METROID?
Metroid Classic
If there is something there already, i do not see it.
kelvin
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
Thanks
Graham
A whole song about the number 7.
Graham, about the f1-f4 parameters, you need to keep 'em separated, lest overflow occurs and you wind up with piercing noise. Here is a short example taken out of the spatializer demo:
CON _clkmode = xtal1 + pll16x
·· ·_xinfreq = 5_000_000
OBJ v : "VocalTract"
VAR byte· aa,ga,gp,vp,vr,f1,f2,f3,f4,na,nf,fa,ff
PUB start
· v.start(@aa, 10, 11, -1)··· 'start vocal tract,·output to pins 10 and 11
· gp := 88··················· 'set pitch to·F#
· f1 := constant(670 / 19)····'set "uh" sound···
· f2 := constant(1160 / 19)···'(This is the exact·noise I make when I'm
· f3 := constant(2600 / 19)···'trying to answer a question.)
· f4 := constant(3100 / 19)
· vp := 20··················· 'add some vibrato for dramatic flare
· vr := 10
· v.go(0)···················· 'transition to settings as fast as possible
· ga := 50····················'set·glottal amplitude
· v.go(5000)················· 'ramp up glottal amplitude slowly
· vr := 50····················'ready increased vibrato rate
· gp := 20··················· 'ready decreased pitch
· v.go(10000)················ 'slowly transition
·
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
Post Edited (Chip Gracey (Parallax)) : 11/4/2006 9:11:28 PM GMT
Is it possible to change nf, na to get better sound in Spanish words ?? could be correct changing those two parameters ??
I'm begining, and it so difficult for me, to locate, where do you post their initial values..
Alberto.
Did you read that Computalker link? It's a bit of investment, but worth it. If you digest that, and then play with that spectograph program, you will start to see how all this ties together.
You can always experiment, and just see what you get, but I think that understanding the spectral nature of speech·is critical. On this thread you should see links I posted to other resources, including that spectograph program.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
I thought that computalker only works on English phonetics.......sorry, like I said I wil read it first.
Thanks so much.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
Cheers,
Graham
Find attached.
Graham
I looked at your code, but didn't run it because I didn't have a tv and keyboard hooked up. It looks great, though.
Your program is·a good idea for allowing people to get a quick handle on what the various parameters do. I noticed that you were stepping the frequencies by 100Hz (~5 unit steps). What about stepping by $10 and using shift-key to step by $01. That way, they could try the entire 8 bits of range out without too much typing. This would be good for finding the 'ga' limit for a set of formants, for example. You would have to show the parameter value, and maybe its translated unit value.
Anyway, thanks for posting this code. I will try it later.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chip Gracey
Parallax, Inc.
Thanks for the link too.· I really enjoy digging into something the texts from the early days of computing.· There are some real gems buried in there.· I just bought the origial Dr Drobbs with Li-Chen Wang's Tiny Basic listing in it.· I don't have any plans for it but it's just wonderful to read.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.speechchips.com
Speech & Video IC's for BasicStamps
I've now produced spectrums for all of the sounds of my voice needed in Phil's program, I used a program called Spectrogram that I downloaded (10 day free trial) so I'll be trying to build up the sounds. One problem I have found so far is that the first Formant for a Yorkshireman seems rather lower than for the average American (though my voice is not all that deep) I always seem to have to lower ga a lot so it doesn't complain.
I got some interesting stuff from the library (took my camera) which I'll share as time allows.
Cheers,
Graham
-heather
Look at it here - ucontroller.com/
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Brian
uController.com - home of SpinStudio
-heather
The monks are singing sweetly here...
The audio circuit has been an established standard here, wonder what changed?
Oldbitcollector
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
The comments and code above are proof that a million monkeys with a million propeller chips *could* write Shakespeare!
Cool stuff Chip.
Javalin