PDA

View Full Version : Speech Recognition for the Propeller: Collaborative Project??



Oldbitcollector (Jeff)
07-06-2009, 05:54 AM
After seeing Chip's demo at UPEW I wanted to take his idea to the next level for
some simple speech recognition for the Propeller.

NOTE: This project is in very early stages! At this point it simply displays the
recorded data and plays it back. It is based on Rayman's Parrot player.

I'm using Propterminal so I can work in my livingroom. (Included in the zip)
You'll need the demoboard with microphone (or equiv) to make this work.

I'm looking to "loosely" match high points in the waveform, for simple
one word commands. The command "LIGHTS" might turn on an LED. :)

Posted for comments and suggestions!

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Post Edited (Oldbitcollector) : 8/26/2009 3:17:26 AM GMT

jazzed
07-06-2009, 08:14 AM
Maybe Chip has ideas on how this could be accomplished? I have ideas, but 0 experience in this realm.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve


Propalyzer: Propeller PC Logic Analyzer (http://www.brouhaha.com/~sdenson/Propalyzer)
http://forums.parallax.com/showthread.php?p=788230 (http://forums.parallax.com/showthread.php?p=788230)

mpark
07-06-2009, 08:27 AM
Is there a schematic of the microphone interface somewhere for non-demoboard users?

Mike Green
07-06-2009, 08:35 AM
The Demo Board schematic is posted on the Propeller Downloads page. You can also use the comments of the microphone to headphones and microphone to VGA objects in the Object Exchange.

hover1
07-06-2009, 08:39 AM
mpark said...
Is there a schematic of the microphone interface somewhere for non-demoboard users?
Here you go..
http://www.parallax.com/Portals/0/Downloads/docs/prod/prop/PropDemoDschem.pdf

It's also in the the Propeller IDE Help

Jim

Philldapill
07-06-2009, 01:14 PM
Wow... I spent an entire semester racking my brain on how to do this(numbers 1 - 10), and that was with a desktop PC and MatLab... If the Propeller can handle simple speech recognition, I can't say I will be too amazed. This is a wonderful chip... :)

Leon
07-06-2009, 01:27 PM
Low-cost speech recognition system like that which used to be available for use with the TRS-80 were very simple - they used a number of of bandpass filters (implemented with op-amps) with the outputs fed to comparators. The comparator outputs were sampled using an input port, and the samples compared to templates previously created in training sessions. IIRC, it could deal with 32 words. I spent some time playing with the TRS-80 unit and it worked quite well.

Something like that could be implemented using an FFT. I keep meaning to try it with a dsPIC, it would be quite trivial.

Leon

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle

Post Edited (Leon) : 7/6/2009 6:41:24 AM GMT

Chris Micro
07-06-2009, 05:07 PM
> ... - they used a number of of bandpass filters

I made some attempts to realize a speech recognition system on an Atmega8. I ended up in an early stage of a speech recognition system. I implemented 6 bandpass filters in software an controlled a robot by whistles (http://roboterclub-freiburg.de/TonAsuro/LichtorgelAsuro.html)

Oldbitcollector (Jeff)
07-06-2009, 08:39 PM
Leon said...
Low-cost speech recognition system like that which used to be available for use with the TRS-80 were very simple - they used a number of of bandpass filters.....


Yup, that's the direction I'm heading.. with spin..
As soon as I can narrow the data down a bit, then I will need to
write a loose comparator routine.

I'll post an update when I get a little further into this..

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Beau Schwabe (Parallax)
07-06-2009, 11:32 PM
The discussion pjv, Oldbitcollector (http://forums.parallax.com/member.php?u=48960), and myself had at the EXPO about speech recognition relied more on looking at the integral energy for pattern recognition·more than the frequency of the speech itself.· If you capture the integral energy at specific time intervals,·and compare that to incoming data then the only normalizing that you need to do is adjust for the various rates that the word is spoken at.· This is a fairly simple algorithm to "expand" or "compress" the buffer length before the comparison is made against the stored data.· This method limits some of the words that can be used, i.e. similar words·will have similar energy patterns and can be difficult to distinguish.· But simple word commands will work just fine.· Attached are·examples of various words (Yes, No, Forward, Reverse) where you can see very specific patterns under the integral energy.·

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

Post Edited (Beau Schwabe (Parallax)) : 7/6/2009 4:39:45 PM GMT

Chris Micro
07-07-2009, 12:48 AM
LEON said...
Something like that could be implemented using an FFT. I keep meaning to try it with a dsPIC, it would be quite trivial.


During my experiments I found an interesting students project in some american universtiy. The used an Atmega32 and made an FFT. Than the save the spectral peak over time for some words and afterwards compared this to some new spoken words.

In my opinion the it is not the right way to use an equally spaced fft. It is better to use some bandpass filters with filter frequencies adjusted to the formant frequencies, This reduces the amount of data to be stored for one word and could give good results.

By the way, here is the video of my sound controlled robot. (http://www.youtube.com/watch?v=D-anbOj4O1c)

jazzed
07-07-2009, 12:53 AM
Wasn't there a neural net done with Propeller? I guess it would be a hog for memory especially if done with floating-point weights, but not such a big deal if the FFT "signature stream" is saved in EEPROM or SDCARD as scaled signed byte or word types.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve


Propalyzer: Propeller PC Logic Analyzer (http://www.brouhaha.com/~sdenson/Propalyzer)
http://forums.parallax.com/showthread.php?p=788230 (http://forums.parallax.com/showthread.php?p=788230)

TinkersALot
07-07-2009, 04:14 AM
OBC:

have you seen: http://www.circuitcellar.com/library/print/0298/stewart91/index.htm

may be interesting in terms of techniques?

Oldbitcollector (Jeff)
07-07-2009, 05:44 AM
TinkersALot said...
OBC:

have you seen: http://www.circuitcellar.com/library/print/0298/stewart91/index.htm

may be interesting in terms of techniques?


Good reading... Thank you!

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Mike Huselton
07-07-2009, 09:40 AM
Good Lord, TinkersALot! That was an incredible article! I have to do the followup research now, just to prove the author wrong. If the author is correct, then I have learned something truly amazing. I did electronic circuit design for ten years before being sucked in the black hole of digital software design. I really cannot believe that I spent all that time remaining ignorant of this simple technique.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
JMH

Leon
07-07-2009, 04:10 PM
It's a similar technique to something that was in DDJ 30 years ago for digitising and playing back speech. I tried it at the time, and the speech was recognisable, with what sounded like a loud buzz saw in the background.

Leon

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle

Oldbitcollector (Jeff)
07-07-2009, 08:46 PM
@JMH

I'm still digesting the material in that article, but you are dead on!
A modification of this appears to be the direction to go...

Can't wait to get caught up on work to dig out my demoboard again!

Here's a direct link (http://www.circuitcellar.com/library/print/0298/stewart91/Stewart-91.pdf) to the PDF.
This put Circuit Cellar on my "must subscribe soon" list.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Oldbitcollector (Jeff)
08-25-2009, 02:53 AM
Guys,

In the other "Dr. Jim" thread, I suggested that this might become a community project.
There is just too much that is still over my head, but perhaps if several of us work on this
we can make it work.

I really believe we could pull off single word speech recognition for the Propeller using
a simple demoboard and a connected SD card.

Any takers on collaboration for this project?

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

RobotWorkshop
08-25-2009, 03:02 AM
Taken from my other thread about recognition:

If you want to try to do some voice recognition on the Prop I can go through my old computer magazines and dig through some of my old computer relics. There were quite a few early Voice recognition boards and I am sure the Propeller today could do a better job. Although I no longer have an S-100 based system I still have one of these boards:

http://www.computerhistory.org/collections/accession/102670945

The software is on a paper tape but I think the docs explained how it worked. There was also the VOXBOX for the TRS-80 which ran on the Model I system. I also know of some code for a 6502 that worked reasonably well for speech recognition. Also, I think there may be an old article from Byte or Circuit Cellar that dealt with speech.

Since I'm not up to speed yet on SPIN programming I don't know how much I could contribute other than research, ideas, and suggestions. I'd be glad to help where I can.

I also remember another product for the IBM PC called "Hearsay" and one version was an ISA card that plugged into the machine. I'm sure the more I dig through my old stuff I will come across more examples too.

Robert

DogP
08-25-2009, 03:02 AM
I'm sure this isn't what you're looking for, but I see Parallax has this now: http://www.parallax.com/Store/Accessories/Communication/tabid/161/ProductID/589/List/1/Default.aspx?SortField=ProductName,ProductName , in case someone is looking for speech control and just needs to get it done.

DogP

Oldbitcollector (Jeff)
08-25-2009, 03:07 AM
I'm thinking that some code from this project (http://gadgetgangster.com/find-a-project/56.html?projectnum=70) may be helpful for the audio input side.
They have already reduced the sound to simple patterns for display.


@RobotWorkshop:

'Speechlab Speech recognition board that occasionally "guessed" the correct word.' Wow.. LOL.


OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

lonesock
08-25-2009, 03:51 AM
I've started dummying(?) up something similar to TinyVoice on my PC, with the intent of porting to the prop when I get it working. I'm actually using a cascaded set of simple 1st order low-pass filters to filter into F1, F2, and "Above that" bands. Then I count 0-crossings and use an average absolute value as a faux power tracker. So a 6 parameter vector per sampling point (collected approximately 50 times a second or so). I think it will be fairly easy to do a DTW type function on the prop as well.

The filtering simply uses a tracking variable, e.g.:

delta := value - track1
track1 += delta >> 2

You control the corner frequency using the scaling factor (delta >> 2), relative to the original sampling frequency.

Jonathan

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lonesock
Piranha are people too.

w8an
08-25-2009, 04:01 AM
I think I still have one of those SpeechLab boards and a couple S-100 machines to run it on.. Geez, I guess I'm getting behind on that basement cleanup...

..Steve

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
..Steve

Actual statement from an HP tech support chat session:
"do you have an email address to help you send you what i need you to send me to help you"

Microcontrolled
08-25-2009, 08:19 AM
I can do SPIN, not ASM. I will throw a few attempts at this project in my spare time, if you want. I am not an excellent programmer.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-26-2009, 03:46 AM
OK! After about 3 1/2 hours programming this, I have finally got a super-simple speech recognition program! The comments at the top (that's about the only place they are http://forums.parallax.com/images/smilies/tongue.gif) describe how it works.

Now back to programming!!

Edit: Oops! Forgot to mention that it is based solely off OBC's program. Without it I could not have made this.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-26-2009, 03:48 AM
Did you really! "experts" have been working on this for months.. :)
(No, I'm not one of them!)

Ok, spill the beans... I'm at work and can't test it yet! How does it work?

BTW, my code was based on Rayman's code..

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-26-2009, 04:04 AM
Well, as I said, too simple. It sometimes will work great and sometimes won't work at all, so it's not very reliable.

It works by taking your program and replacing the "Play" (although it can be put back in if you want playback, I did that) with a new "CheckRecording" subroutine. It has not only a WAV byte array, but also a "Final" byte array as well. The extra subroutine takes the first part of the "Start" routine from your program and the "Play" subroutine and combines them after the "Record" subroutine call in the "Start" subroutine. It then replaces the playing part of the "Play" routine with a function that checks the sound within a range that is set in the CON block. It reads it byte by byte in decimal mode and then once checked it writes them to temporary VARs. It is doing this in a repeat loop so the temporary VARs get overwritten every time it loops. Anyway it is reading the previous recording and the new recording at the same time, so that is what it is comparing. If it is in the set range (say, "40") then it writes +1 to the globel "sound" VAR. When it is done with this it checks for how consistent it is by guessing how many sound bytes where within range by a value set in the CON block. The value can be 0000 (none right) or 8000 (all right, impossible match) it does the comparison with a "=>" sign so it can be more exact, but not less exact.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

jazzed
08-26-2009, 04:05 AM
I think your effort is admirable.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve

Propeller Tools
Propalyzer: Propeller PC Logic Analyzer (http://forums.parallax.com/showthread.php?p=788230)
BMAD: An on-chip PASM Debugger (http://forums.parallax.com/showthread.php?p=829927)
SPUD: Spin Source Level Debugger for Linux/Cygwin (http://forums.parallax.com/showthread.php?p=831329)

Oldbitcollector (Jeff)
08-26-2009, 04:12 AM
An excellent start in speech recognition direction!

So we should add the warning of not using this code for failsafe shutdown of a mechanical device? :) :) :)

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-26-2009, 04:14 AM
DEFINITELY NOTHING THAT DEPENDENT!!! http://forums.parallax.com/images/smilies/smile.gif http://forums.parallax.com/images/smilies/smile.gif

I should have a YouTube video up soon.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

CounterRotatingProps
08-26-2009, 04:18 AM
> ... not using this code for failsafe shutdown of a mechanical device?

As in:

"Open the Pod Bay doors HAL" ?

LOL

Nice work OBC and Microcontrolled ! This is fun stuff ...

"f e t c h s l i p p e r s J e e v e s "

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Microcontrolled
08-26-2009, 04:25 AM
I should really make an automated robot with it. YouTube upload in progress........

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-26-2009, 04:47 AM
www.youtube.com/watch?v=7X_0wLvo0SQ (http://www.youtube.com/watch?v=7X_0wLvo0SQ)

Here's the video! It is a bad video camera-wise, when I lean in to the mic to speak I move the camera out of view from the LED's. Has anyone tried it yet? I suggest adjusting the accuracy between 1800 and 4000 if it starts thinking that different words are the original word that was spoken.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-26-2009, 05:27 AM
I'm going to start a new thread for this, so that people know that there is software (although simple) avialible. I will still be working on this as a group project.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Hanno
08-26-2009, 05:32 AM
Great job Microcontrolled and OBC! The video is a good inspiration to things to come. I would love to include simple speech recognition in 12Blocks- so, here's the challenge:
-Hardware is limited to the Parallax DemoBoard
-Uses 1 cog and less than 15KB global ram
-Uses 1 spin variable to indicate what word was recognized
-Must understand either: "1,2,3,4,5,6,7,8,9,10" or "up,down,left,right,yes,no". I should be able to take the code, speak the items in any order and not see a mistake. It's ok if I have to repeat myself, speak carefully, be in a quiet room...
-Code must be MIT license
Winner gets a ViewPort Ultimate license...
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Post Edited (Hanno) : 8/26/2009 1:25:11 AM GMT

Microcontrolled
08-26-2009, 05:38 AM
The thing about it is that it must be initialized. The sound waves must match the speaker's voice. That is what makes it possible to do on the Propeller. Also, the voice samples take about 10k of HUB RAM, however, I could add an SD card and be able to do a 1 time initialization by storing them on the SD card in a WAV file format.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

w8an
08-26-2009, 07:17 AM
Hanno, when you say your challenge must be limited to the prop demo board, do you mean it cannot contain any discrete components that are not included (like maybe a 741 op-amp)?

Rayman
08-26-2009, 07:59 AM
I wonder if wavelet transforms would be the way to go...

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
My Prop Info&Apps: ·http://www.rayslogic.com/propeller/propeller.htm

Microcontrolled
08-26-2009, 08:02 AM
Limiting it to 5k of program space means that I will have to drop some functions, like playback, and compress some others to fit.

If it is limited to using only Demo Board components then since 12 Blocks loads to RAM only can I store speech functions in the on-board EEPROM? If I cannot then there is no way I can meet your requirements.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Hanno
08-26-2009, 08:22 AM
Yeah! Great to see you thinking about my requirements! Yes, only hardware allowed is the DemoBoard, that will allow more people to use it- it has a built-in mic and adc, this would be a great use of it. Ok, I was a bit stingy- you now have 15kByte of Hub RAM.
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Microcontrolled
08-26-2009, 09:08 AM
Thanks! That will open up a wide range of new possiblitys! I think that I can minimize it to 15k, so that is great! I am still working on an I2C version (for the past 2 hours) and have run into some difficulty, so I am glad to know that I miight be able to bypass that.

This is the first project that I have had fun with in the last year or so. Which, in saying, indicates that almost everything I have built since then is eather in progress with no visible hope of success, or is done and does not work. (well, ONE thing got compleated and worked. Rarely do my project survive off a breadboard!) I'm glad that I can at last have something that works and is of interest to others!

--Micro

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

mctrivia
08-26-2009, 09:16 AM
To bad you can't use my super prop. 8mb ram 8mb flash fits dip40 socket

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30 (http://propmodule.com/?x=products). PCB available for $5

Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd (http://www.gadgetgangster.com/160) and propmod-1x1 (http://www.gadgetgangster.com/161) are now available for use in your Gadget Gangster Projects.

Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com (http://uploader.propmodule.com) for free.

Microcontrolled
08-26-2009, 09:19 AM
What is a "super Prop"? Or are you kidding?

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

mctrivia
08-26-2009, 09:23 AM
look in sandbox. I have been designing prop replacement with lot more memory.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30 (http://propmodule.com/?x=products). PCB available for $5

Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd (http://www.gadgetgangster.com/160) and propmod-1x1 (http://www.gadgetgangster.com/161) are now available for use in your Gadget Gangster Projects.

Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com (http://uploader.propmodule.com) for free.

Dr_Acula
08-26-2009, 09:42 AM
I spent 4 months researching this at the bionic ear institute in Melbourne back some years ago. One of the problems they were having with processing the bionic ear is that a male engineer would say "testing, testing", and it would work fine and then they would put the implant into a child and the child could hear dad but not their friends. High pitched voices clearly have a waveform where the peaks are a lot closer together. The challenge we faced was to try to recognise words from male, female and child speakers as the same word. The abstract is here ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=253692 (http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=253692) but IEEE want you to pay to see the article. I might see if I have a copy at home.

In essence, a recognition system needs to be tolerant of deformity, and you need exact control over that process. Band pass filters are a start but the first harmonic of a male speaker might be the same as the fundamental of a child speaker, and the band pass filters can't adjust for that. But it ought to be possible to train something for one particular user.

To take it the next level, FFT is needed. The cochlea has a very precise FFT system in that each hair is tuned to a particular length and so this is a band pass filter with a very narrow width. That means you need to watch for ringing in a discrete filter, plus FFTs with narrow pass bands take more time to process. I did get a FFT working in C once on a CP/M computer but it was about 100x slower than real time. Maybe the prop can do FFT? I think the prop is faster than the DSPs from the early 90s.

Then you end up with a new waveform that looks like some of the pictures already posted. This is much easier to work with. We were using a neocognitron to pick out the peaks and other patterns in the signal and look for more and more complex patterns. The neocognitron is modelled on the visual system of the cat, but there is evidence similar processes work for auditory signals www.scholarpedia.org/article/Neocognitron (http://www.scholarpedia.org/article/Neocognitron) for an example. It can read handwriting and can be trained with an A and can then recognise an upside down A with no further training. But a neocognitron takes a huge amount of processing power, particularly in the later layers. We were running a 20Mhz 486 all night to process 20 seconds of speech. We had some success using correllation coefficient formulas rather than neocognitron formulas for the pattern matching as these used simple formulas like (sum of x) and (sum of x squared). This was all working on a 4Mhz CP/M system and was using logs and antilogs for the multiply as the Z80 can't do a hardware multiply. We always wanted more neurons! Hmm - what is the brain - 100 billion neurons with 10,000 dendrites per neuron each at about 1000 Hz. 10^11 *10^4 *10^3 = 10^18. What is a propeller - 20 million instructions per second on 8 cogs - 1.6*10^8. Only need to make it 10^10 times faster to simulate a brain...

I guess the thing about speech recognition is that it is easy to teach a few words always said the same way by one speaker. Harder to do it with different speakers. And the big big thing we were working with for the bionic ear was working in the real world with a noisy background, particularly when the noisy background is other speech.

Start simple and work up. A few band pass filters will certainly be able to do something. FFT would be a start - is that possible on a prop?

Oldbitcollector (Jeff)
08-26-2009, 10:06 AM
@microcontrolled:

I attempted to clean up the code a bit... quite a bit actually..

I dumped the trigger because it seemed it was interfering with the samples themselves.
This one "should" toggle between LISTENING and COMPARING and light an LED when a match is heard.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Post Edited (Oldbitcollector) : 8/26/2009 4:01:05 AM GMT

Oldbitcollector (Jeff)
08-26-2009, 10:10 AM
Curious...


Why did you fork the thread into a new one?

There's still a LOT of work to be done here.. :)

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Bob Lawrence (VE1RLL)
08-26-2009, 10:12 AM
Dr_Acula said...
FFT would be a start - is that possible on a prop?



Here's one example:
propeller.wikispaces.com/FFT (http://propeller.wikispaces.com/FFT)

Hanno
08-26-2009, 11:56 AM
Accurate speech recognition with a large vocabulary isn't here yet- not even with desktop power/memory. However, it should be possible to reliably differentiate between ~10 words with Propeller memory/cpu. Keep up the great work!
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Dr_Acula
08-26-2009, 12:02 PM
Thanks for the FFT link. Looks neat. As Hanno says, 10 words with the prop ought to be possible - I'll be following this thead with interest.

Microcontrolled
08-26-2009, 05:55 PM
I put up a new thread so that it would be easy to find in the future. It is not really for a discussion, just to post updates as they come. After school is out I will get back to work on this.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-27-2009, 10:00 AM
Okey, not as much accomplished as I hoped. The power went out just 30 minutes after I finished school and didn't come back on till 8:30 in the evening! I worked till 10 tonight on an EEPROM version that records sound samples and then writes the to the EEPROM on the demo board overwriting the current program but this is a copy for 12 Blocks and it dosn't use EEPROM, so I'm good on that deal!

It gets stuck when I get to the save to EEPROM part, so I will post the code tomorrow so that someone more experienced in that field can help me. http://forums.parallax.com/images/smilies/smile.gif

Thanks for all the support!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

mctrivia
08-27-2009, 10:19 AM
Check out my I'd object in the obex for how to save to eeprom

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
propmod_us and propmod_1x1 are in stock. Only $30 (http://propmodule.com/?x=products). PCB available for $5

Want to make projects and have Gadget Gangster sell them for you? propmod-us_ps_sd (http://www.gadgetgangster.com/160) and propmod-1x1 (http://www.gadgetgangster.com/161) are now available for use in your Gadget Gangster Projects.

Need to upload large images or movies for use in the forum. you can do so at uploader.propmodule.com (http://uploader.propmodule.com) for free.

Beau Schwabe (Parallax)
08-27-2009, 11:12 AM
Here is something I thought I would throw out there... this is just a little bit of my theory on speech recognition. I have used this method on other systems with success. You must choose your words carefully, because some words can have similar patterns. i.e. you probably don't want to have the commands 'GO' and 'WHOA'... instead use 'GO' and 'STOP' to make more distinguishable patterns.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

Post Edited (Beau Schwabe (Parallax)) : 8/27/2009 4:37:57 AM GMT

Phil Pilgrim (PhiPi)
08-27-2009, 11:34 AM
Good point, Beau. I think that's why "giddyup" and "whoa", along with "gee" and "haw" are used with language-challenged draft animals.

-Phil

Beau Schwabe (Parallax)
08-27-2009, 11:37 AM
@Phil - "language-challenged draft animals." - I've been called worse http://forums.parallax.com/images/smilies/smilewinkgrin.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

QuattroRS4
08-27-2009, 04:47 PM
"language-challenged draft animals." - Brilliant Phil !

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
'Necessity is the mother of invention'

'Those who can, do.Those who can’t, teach.'
'Convince a man against his will, he's of the same opinion still.'

·

BradC
08-27-2009, 06:24 PM
Phil Pilgrim (PhiPi) said...
Good point, Beau. I think that's why "giddyup" and "whoa", along with "gee" and "haw" are used with language-challenged draft animals.

-Phil


Have you been watching the streaming version of Australian Parliament question time then?

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
lt's not particularly silly, is it?

Oldbitcollector (Jeff)
08-27-2009, 08:17 PM
@Beau

Thanks for that! Sadly, thanks to taking a day off last week for expo, I spent yesterday
playing "catch up ball" with work until late, and didn't crack out the Prop to smack that
bug you mentioned in the code. (Hopefully tonight!)

@Phil: language-challenged draft animals LOL.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-27-2009, 10:10 PM
Thanks for the doc, Beau!

Is the waveform shown in digital, or analog? If it is in digital then I might be able to accomplish it, I am not very good with analog signals. The object I am using converts them, so it is possible for me to write the simple program that I wrote because it is only the comparison and the transfer of numbers.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Beau Schwabe (Parallax)
08-27-2009, 10:26 PM
microcontrolled,

The waveform is just the digital ...0-255... representation of the incoming analog signal.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

Microcontrolled
08-27-2009, 10:26 PM
Okey! Here is the I2C version that I wrote last night. It is sloppy, inefficient code, but I was in a rush to get it done. It does not save to the EEPROM, apparently, because the program will still load from the external EEPROM after it records the first sound sample.

Wait! I just thought of what it is that's the problem! I have it overwriting itself in the same EEPROM locations in the repeat loops! http://forums.parallax.com/images/smilies/blush.gif I love mid-posting thoughts!

If that dosn't work I will still need help with it, and if it does, here it is anyway.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-27-2009, 11:31 PM
I noticed this the other night...

On our repeat i from 0 to n loops, shouldn't we have an i++ ?

I was too tired when I noticed it to deal with it.
Haven't had a chance to get back to the code.

Nice additions!

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

jazzed
08-27-2009, 11:36 PM
Oldbitcollector said...
...
On our repeat i from 0 to n loops, shouldn't we have an i++ ?

Only if you want i to be i := i + 2 on every loop.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve

Propeller Tools
Propalyzer: Propeller PC Logic Analyzer (http://forums.parallax.com/showthread.php?p=788230)
BMA: An on-chip PASM Debugger (http://forums.parallax.com/showthread.php?p=829927)
SPUD: Spin Source Level Debugger (http://forums.parallax.com/showthread.php?p=831329)

Oldbitcollector (Jeff)
08-27-2009, 11:45 PM
microcontrolled said...

Wait! I just thought of what it is that's the problem! I have it overwriting itself in the same EEPROM locations in the repeat loops! http://forums.parallax.com/images/smilies/blush.gif I love mid-posting thoughts!




I'm not an EEPROM expert (prefer SD myself) but that looks exactly like what is happening..
You must copy/paste blocks of code too.. ;)


OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Post Edited (Oldbitcollector) : 8/27/2009 4:50:16 PM GMT

Microcontrolled
08-28-2009, 12:30 AM
I have now written a program that writes speech samples to the Demo Board EEPROM. This program is made specifically for Hanno's 12 Blocks program.

@Hanno: is a setup like this valid for 12 Blocks? You would have to run it first, using a TV, keyboard, and the Demo Board and then run the program that actually uses the Speech recognition program.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-28-2009, 01:21 AM
This one is the same thing with some waitcnts removed for smoother recording, full documentation at the top, and; oh yeah, the voice samples now ACTUALLY FIT IN THE EEPROM!! http://forums.parallax.com/images/smilies/rolleyes.gif
Samples CON is changed to 5300 because with a 32k (32000 byte) EEPROM 5300 X 6 (6 voice samples) = about 32000. It should work now, still working on the program that uses it.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-28-2009, 01:49 AM
Based on what I've seen of 12 blocks (video demo only), You should probably
have it set to record a single sample, and provide controls for the pin that is
toggled when the sample is matched, the EEPROM location of the sample, just
like the accuracy and choke controls.

This way the object is drug out in 12 block, and the user is given these four
options to change in the block.

Perhaps Hanno can provide some additional input as it exactly what will
work for him. Take a look at the "12 blocks" section of this video (http://www.youtube.com/watch?v=duqeRK0OzdQ) to see what I mean.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-28-2009, 02:45 AM
Well, he said that it had to work with ether "1,2,3,4,5,6,7,8,9,10" or "right,left,up,down,yes,no". If it was just a single command then I wouldn't have much trouble creating it. However, I HAVE created a version that fits under his specs (exept that it takes up 500 bytes more then 15k) and can run from the EEPROM. I just finished writing it and have been having some problems. It detects your voice (needed for 12 blocks, so they can start talking whenever they want) and then records it but when it starts to extract the files form the EEPROM the screen goes crazy with lines and flickering (which stop after a few seconds) and a fuzzy sound comes out of the speaker. Does anyone know what is going on? Examine the code attached. I would greatly appreciate your help. http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-28-2009, 02:53 AM
Remark this section of code:




DIRA[10]~~ 'Set Right Pin to output
DIRA[11]~~ 'Set Left Pin to output

'Set up the counters
CTRA:= %00110 << 26 + 0<<9 + 10 'NCO/PWM Single-Ended APIN=Pin (BPIN=0 always 0)
CTRB:= %00110 << 26 + 0<<9 + 11 'NCO/PWM Single-Ended APIN=Pin (BPIN=0 always 0)


▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-28-2009, 03:23 AM
They aren't commented out, in fact, they are the same as you have them there. Or are you saying to adjust them?

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-28-2009, 04:03 AM
No, I suspect they can be removed, but comment them out first..
IIRC, these were for the sound playback over the speakers.

I haven't had a chance to crack open the prop *yet* today, it
been a crazy afternoon between work and kids. ;)

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

CounterRotatingProps
08-28-2009, 05:43 AM
From the sidelines watching, a comment:

Microcontrolled - you are an amazing and inspiring young man!

@Hanno - does he get a bonus prize for the speed at which he's done this? :))

- Howard

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Hanno
08-28-2009, 06:28 AM
I wasn't expecting anything for weeks! I'm just assembling all the pieces now, having some problems locating the right basic_i2c object that's compatible with your code- can someone help?
Microcontrolled's code references an i2c object that takes 3 arguments for writebyte:
ic.WriteByte(ic#EEPROM, $0000 + i, temp)
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Oldbitcollector (Jeff)
08-28-2009, 07:01 AM
Given proper motivation young people can accomplish ANYTHING. :)
(and it sounds like Hanno found the fuel to light under microcontrolled. :)

Speech Recognition this week, next week we need retinal scan.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Phil Pilgrim (PhiPi)
08-28-2009, 07:14 AM
I'd like to suggest one rule change, if I may: accept "niner" for "nine". It's hard enough sometimes for humans to distinguish "five" from "nine", and "niner" is accepted in radio communications.

-Phil

Microcontrolled
08-28-2009, 07:58 AM
I commented them out and it didn't help a bit. I started experimenting and I found that if I switched around the

byte[final+i] := temp

to

temp := byte[final+i]

that it worked and went through the system. However, after it Extracted the first file then it went through the whole system in less then a second! I soon found that I had NOT declared that n := Samples! After correcting that it would go through the system UNTIL it got to where it told me what word I said. I worked with it a long while and I still don't know why it is like this. Can you help me find out what is preventing it from telling me? Thanks for all the help so far!

Micro

ADDED: I am putting on an SD card holder now, and it is connected to the Propeller...

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-28-2009, 08:03 AM
Please zip up your all your objects and post.

I'm having the same problem Hanno is having. My I2C driver doesn't handle your code.

Thanks
OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-28-2009, 08:06 AM
Oh, I had that post sitting here on the computer for hours, and I just posted it, so I'm a little behind here....
Ive been "chomping at the bit", as one would say, with this project. I get up early and do Math, then Reading for the majority of the time, then as soon as my last school assignment is done I head for the desk! At least today I got in a good 5 1/2 hours, yesterday we had to go out in the evening so I worked till 10 to get in a mere 3 hours! http://forums.parallax.com/images/smilies/smile.gif

@Hanno: My version should be standard, but sometimes if I download an object that uses it the object comes with one a little modified. I will get it up here soon for you.

@OBC: ViewPort Ultimate makes me VERY motivated! http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-28-2009, 08:17 AM
Here is the folder with EVERYTHING in it. Be warned: I just zipped up the drivers and all files labeled "Speech Recognition" some may be uncompleted so only use the newest of any of them. The "003" uses the LED's as the indicator, "004" uses the TV_Text object (also in the folder). Hope you find them suitable!

P.S. The one thing that I have not worked out yet that needs worked out (besides the thing I posted a while ago) is the fact that the EEPROM read is VERY SLOW and the write is EVEN SLOWER! The setup procedure takes almost 5 minutes to complete and the comparison between stored files take about 1 minute 30 seconds!!!! http://forums.parallax.com/images/smilies/freaked.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Hanno
08-28-2009, 08:21 AM
Keep going microcontrolled!
I've tried all the usual places to find an i2c driver that's compatible with the one you seem to be using- so yes, please zip up your complete project that'll make it easier for me and others to try what you've built. In the Propeller Tool choose "File/Archive" and upload that...

Hmmm, retinal scanning doesn't excite me that much. It would be nice to flesh out the speech synthesis stuff that Chip has built. I think someone else had built their own as well? But first, please concentrate on "completing" this. I'm sure lots of other people will want to use speech recognition in their robots/projects. Would be wonderful if the code was somewhat documented, commented, came with samples and a demo video. None of this is part of the challenge- but please do it!

And yes, feel free to make slight changes in the vocabulary to make recognition more robust. The Palm Pilot was successful because it required a bit of learning from it's users, but then with the Graffiti strokes provide very robust character recognition. Great idea to borrow from animal/military practices.
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Microcontrolled
08-28-2009, 08:30 AM
@Hanno: My entire method has been to take several pre-recorded voices, convert them to digital, take a spoken command, convert IT to digital, take the library of pre-recoded voices and see which ones match best, and then declare that as the spoken word. To turn it to speech-synthesis or the like would take weeks just like everyone else who has attempted speech recognition. I am trying to simplify it and that is why I am going so fast. If I can find an efficient way to use Chip's objects then I will, but I just don't think that it would be memory efficient.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-28-2009, 09:00 AM
A thought...


How about loading the samples once, then just repeating the compare..
(See attached code)

Won't speed the loading yet, but would help once everyone was in place..

OBC

(Every command is "left" at the moment..)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Hanno
08-28-2009, 09:20 AM
Had problems with my TV, so converted code to use the terminal object from ViewPort. I'm currently "saving" my "yes"....
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Microcontrolled
08-28-2009, 09:23 AM
I'm on my Palm now, so I can't view the code, but is it under 15k? That seems to be the hardest thing about Hanno's requirements but if it wasn't under 15k you couldn't have much of a program now, would you?

P.S. I have started working on a new "trigger word" tecnique that records constantly, moving the BYTEs allong byte by byte using bytemove. When a word is detected, it is checked with a preveously recorded word for a match. If it is a match, it changes a variable and lights a light. (the varible if Hanno ever wants it for his program, they seem to be easy to track)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-28-2009, 09:26 AM
@Hanno: Remember: that code isn't fully working yet. I am still haveing trouble with it recognizing the voice. The screen will not show what I said but will just leave a blank spot. I am still to discover what the problem is with it.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Hanno
08-28-2009, 09:35 AM
Yup, just ran into that...
I went through the process of training my voice and then tried twice to have it recognize what I said. At least it consistently gave me a "blank spot". Keep going, you're almost there. I do like your method- it's simple, but I believe it will achieve the challenge conditions once you slow down and give yourself a little bit of time.

This will give us a good foundation to improve upon- first 6 words, then more.

I have to run off for a while but I'll check in periodically.
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

hinv
08-28-2009, 09:36 AM
How about compression? I know it makes it a lot more complicated, but voice samples should be quite compressible. Has anybody done audio compression on the prop yet? If not then taking a tangent to get that done would delay things.
I would go for SDcard first, but that is not standard on a demoboard.
What is the sample size(in bits) and the sample rate?

Do you have the option open that what was said doesn't sufficiently match any of the commands? I wouldn't my robot(or my children for that matter) to assume I said something that I didn't.

Microcontrolled
08-28-2009, 09:38 AM
Well, here in eastern America, it's 10:30 PM! I'll be going to bed, see you tomorrow!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
08-28-2009, 10:03 AM
Once it listens as good as my teenagers, I'd say we have a winner.:)

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Microcontrolled
08-29-2009, 05:32 AM
OK, today I've been busy with everything exept my code. http://forums.parallax.com/images/smilies/smile.gif

I ran your code, but I don't understand it. It writes to the "final" byte array over and over so the extractions are simply overwritten. I don't see how it only gets "Left" but if I even whistle into it is says that I said "Left".

I've put in about 1 hour 30 minutes into the program so far and I think I have the solution: I think that the problem is in the EEPROM write. I made a simple player that extracts the files from the EEPROM and plays them on the speaker. What comes out, no matter which one you extract, is a sound similar to that of one tapping on the microphone once. See what I mean.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Microcontrolled
08-29-2009, 07:29 AM
OK! I now have the newest version of the recognizer! However, as usual, it is not fully working. It takes the voice sync files and "compresses" them (removes x amount of bytes in-between each byte read) and places them in there own buffer in the internal memory. It seems to work great, but at a certain point the screen will blank and flicker. The time before it does this decreases with the raising of the "comp" CON (or the number of bytes skipped). Does anyone know what could be causing this? http://forums.parallax.com/images/smilies/confused.gif Here is the code.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Phil Pilgrim (PhiPi)
08-29-2009, 08:27 AM
microcontrolled,

Please post your code as an archive. I can't find Dual_ADC1.spin anywhere. Nevermind, I found it.

-Phil

Post Edited (Phil Pilgrim (PhiPi)) : 8/29/2009 4:17:41 AM GMT

Microcontrolled
08-30-2009, 01:02 AM
@Hanno: This is my progress so far on fitting your requirements:

-Hardware is limited to the Parallax DemoBoard -- I've got this down on all my versions exept on the SD card version.

-Uses 1 cog and less than 15KB global ram -- On the simplest one, no problem! Same on the EEPROM one, but it is currently not working. I have another version that is like the EEPROM one only 50x faster because it "compresses" the files (well, not really) into smaller files and fits them onto HUB RAM. It has a small error that makes it freeze but other then that it works fine.

-Uses 1 spin variable to indicate what word was recognized -- Just displays a message now, but this function is simply added.

-Must understand either: "1,2,3,4,5,6,7,8,9,10" or "up,down,left,right,yes,no". -- I went with "up,down,left,right,yes,no" because that is less words that need stored.

-I should be able to take the code, speak the items in any order and not see a mistake. It's ok if I have to repeat myself, speak carefully, be in a quiet room... -- You actually have to speak fast for it to recognize your voice because of buffer storage limitations. Also, since it is a voice comparison system it needs you to sync your voice.

-Code must be MIT license -- Well, duh! Why else would I keep posting it? http://forums.parallax.com/images/smilies/smile.gif

These are all the requirements and how I've been doing fitting them. I havn't had time to program yet today, but I will first chance I get. I should have this code completed in a week. Starting Saturday next week I will be leaving on vacation, so I hope to have it done before then. What encourages me most is whenever someone posts on this thread. It is dissapointing when I come to post some new code and no one has commented on the previous versions. Thank you for posting here and keeping my hopes up for this project!

Micro

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Phil Pilgrim (PhiPi)
08-30-2009, 02:13 AM
microcontrolled,

All of the objects you use have to be MIT-licensed as well. Rayman's dual ADC object is not. Maybe you can get him to add the appropriate boilerplate.

-Phil

Microcontrolled
08-30-2009, 02:39 AM
I just PM'ed him. I should be getting a reply soon. Thanks for pointing that out!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

webmasterpdx
08-30-2009, 05:23 PM
This is typically done by first recognising the vowels. This is done usually by getting whats known as Forments. You need 3 forments to do a good job, but there is a simple paper out there that just measures the zero crossing points to determine frequencies (was written a long time ago by some guy from sharp labs) that could easily be implemented on a PIC. That would be able to recognize single words like "Lights", etc....
To get the consonants then takes extra processing. I'm not familiar enough to tell you how that part is done....maybe by finding certain types of discontinuities in the wave envelope or something.

-D

webmasterpdx
08-30-2009, 05:40 PM
I just read all the other comments on this thread and it looks like nobody did any research before attempting this work....suggest you look for speech recognition on google before you attempt a project like this in future to see how it's normally done....
Look up forments. You should be able to recognize 1 through 10 only using forments pretty easily. Should take maybe under 1K of code. You don't even need to mess with the consonants. Just think in terms of the words not having consonants, so "Lights" will sound like "Eyes". As long as you don't have words that sound the same when you remove the consonants, you can have as big a vocabulary as you want. 5 and 9 might sound the same....

As I mentioned in my last post, there is a paper out there if you search for it. Consonants is another thing. I suspect it involves playing with the envelope around the wave.

If you want to compare a wave envelope with one by another person speaking, you could take a correllation between the 2 signals. This would be done by taking the peaks of the waveforms and calculating the sum of S1xS2 where s1 and s2 are the samples from the 2 waveforms to be compared.
Maybe doing that and comparing the forments as well combined might be a good way to generalize detection and recognition of the words.
Not that a faster way of calculating correlation is to do an average sum of minimum differences I think it's called.....where you just add the differences between the values so it would be sum of s1 - s2.

For the first method (correllation) it's where the value peaks that you get a match.
For the second it's where it minimizes that you get a better match.

You have to compare the input wave with all the stored waveforms.

I actually haven't used the propeller yet. Not sure if I want to....is why I joined to create a new thread asking a few questions about the architecture as I don't see it being all that great (I have a strong supercomputer background so I'm used to working with parallel processors and a strong embedded background). Anyways, I saw this thread and thought I'd help.

Good luck.
-D

Microcontrolled
08-30-2009, 06:20 PM
Thanks for the info! I will look that up and I hopefully will be able to find the article you mentioned.

Thanks!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Leon
08-30-2009, 08:53 PM
Microchip has a nice speech recognition library for their dsPICs:

www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023596 (http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023596)

It uses the Hidden-Markov technique (basically a state-machine with probabilistic features), in common with most other successful systems. A similar approach for speech recognition on the Propeller would be advisable.

It only requires 9 MIPS.

Leon

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle

webmasterpdx
08-30-2009, 10:35 PM
I found that article for you....
http://www.google.com/url?sa=t&source=web&ct=res&cd=3&url=http%3A%2F%2Fca.geocities.com%2Fxxxtoytech%2FS tewart-91.pdf&ei=B5yaSsqAM4nQtgO0n6GnAg&usg=AFQjCNHLGxJrmFQ9GfKesWhL-xB7RwMOAw&sig2=cnoAE59xFSq3A84-jAfmNQ

That pdf is a Garcia circuit cellar article.....very good and easy to understand. Now this is just for forments.
Someone suggested looking at the dsPIC library. I have seen the term Hidden Markov models used when applied to speech recognition, so to make it more advanced, you could definitely look at that.

Good Luck
-Donald

RobotWorkshop
08-30-2009, 11:47 PM
webmasterpdx said...
I just read all the other comments on this thread and it looks like nobody did any research before attempting this work....suggest you look for speech recognition on google before you attempt a project like this in future to see how it's normally done....

Everyone has there opinion but there is nothing wrong with letting someone start from scratch on a project like this.· Perhaps instead of doing it 'just like everyone' else, some of the people taking up the challenge will find some shortcuts or new/inovative ways to approach the problem of speech recogonition using a unique processor like the Propeller chip.

I find it interesting to see what comes out of this project.

Robert

webmasterpdx
08-31-2009, 12:56 AM
Actually no, I disagree. By not looking at whats normally done, you ignore the physics of the problem. Things like all vowels are represented by forments. You wouldn't know that if you didn't read it. Someone looking at a waveform isn't going to be able to do that.

The only thing they came a little close to was examining the waveform peaks, but being aware of signal processing techniques like correllation will shorten the time to a solution by a factor of 100 to 1.

Bottom line, there are certain laws of physics about speech that you have to be aware of before you can write this kind of code.....so to remain ignorant is not a useful strategy.

Learn the laws of physics and ignore the algorithms....thats fine....then come up with new algorithms from a position of education......that actually makes sense and then Id agree with you, but you might as well hook 2 cans together with string if you want to remain ignorant of the physics of the whole thing.

The propellor will allow you to optimize the signal processing operations.....thats probably how best to use the propellor. Actually, if someone would write a good signal processing library that can use cogs in parallel, that'd be useful for everyone...


-D

CounterRotatingProps
08-31-2009, 01:10 AM
Hi webmasterpdx,

Welcome to the forums!

I have to agree with Robert (Robotworkshop) on this one - I do understand the hazard of 'not looking at what's normally done'. But you need to see this thread, this activity in context. "OBC" posted some code and an idea, "Microcontrolled" (who is a younger fellow) picked up on it - and in a matter of *days* came up with something that works pretty well. He can speak for himself, of course, on what he may have researched "out there"... but I'll be he came up with these things by a combination of smarts, hacking at it's best, some exchanges here, and - most important - (re)prototyping his experiment until it worked. If he were to research all the things you mention, then he'd probably still be reading, with no results.

The merit in reinventing is learning the shape and function of wheels.

cheers,
Howard

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

webmasterpdx
08-31-2009, 02:13 AM
Absolutely not....the link I posted above could be converted in a day to run on the propeller....

So, by being educated it's not a problem.

Speech recognition is a complex thing to do.

I wasn't aware that he actually got something that worked....?????

-D

Phil Pilgrim (PhiPi)
08-31-2009, 02:33 AM
Bootstrapping from first principles (and stubbing your toes along the way) is a great way to immerse yourself in a difficult subject matter ... if you have the time and tenacity. I say this because, once you reach an impasse, you have an overwhelming incentive to see how others have done it, whereas that incentive may have been lacking before, resulting in mere spoonfeeding of information. By making your own mistakes, you learn why other techniques were explored and, hence, remember them better.

BTW, webmasterpdx, the word is "formant", not "forment".

-Phil

Oldbitcollector (Jeff)
08-31-2009, 02:41 AM
I can't speak for microcontrolled but I'm enjoying the exploration of the subject..

If I fully understood all the variables and information involved at this point this would
cease to be a hobby project for relaxation and learning by doing...

Don't get me wrong, I'm reading materials provided, but I enjoy looking for the
missed methods by trying solutions which may or may not be a shortcut passed
some of the difficulties involved.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

RobotWorkshop
08-31-2009, 04:12 AM
webmasterpdx said...
Actually no, I disagree. By not looking at whats normally done, you ignore the physics of the problem. Things like all vowels are represented by forments. You wouldn't know that if you didn't read it. Someone looking at a waveform isn't going to be able to do that.

The only thing they came a little close to was examining the waveform peaks, but being aware of signal processing techniques like correllation will shorten the time to a solution by a factor of 100 to 1.

Bottom line, there are certain laws of physics about speech that you have to be aware of before you can write this kind of code.....so to remain ignorant is not a useful strategy.

Learn the laws of physics and ignore the algorithms....thats fine....then come up with new algorithms from a position of education......that actually makes sense and then Id agree with you, but you might as well hook 2 cans together with string if you want to remain ignorant of the physics of the whole thing.

The propellor will allow you to optimize the signal processing operations.....thats probably how best to use the propellor. Actually, if someone would write a good signal processing library that can use cogs in parallel, that'd be useful for everyone...


-D
I never said or implied that someone should 'ignore the physics of the problem.'· Nor did I ever state that someone shouldn't seek them out and read them (I already have much of this material in my library).· You've missed the spirit of my post and this thread.··What is wrong with experimenting to see if someone may find a completely new method for dealing with the issue?

Hanno
08-31-2009, 04:13 AM
Great discussion! Microcontrolled will be very happy with the level of activity on this thread.
I'm very happy that so much thought is going into this challenge- it'll be great to have speech recognition for the Propeller. I really like the Propeller because it's hardware is powerful and flexible enough that pretty much anything just becomes a software problem- outputting graphics, grabbing video, computer vision, synthesizing speech, and now speech recognition. I agree that much research has already been done on understanding speech- and that eventually that knowledge should and will be used. I'm a big fan of iterative development where you start by hacking something up quickly, learn what the problems are, doing research, and staying passionate about the problem until it's completely solved. Let's see where this takes us!
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Oldbitcollector (Jeff)
08-31-2009, 04:20 AM
I've been playing with Nick G's visualizer (mentioned earlier in the thread) code this afternoon,
While I haven't locked in on speech patterns yet, I did stumble on
a simple method of hand clap controls. Interesting?

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

CounterRotatingProps
08-31-2009, 04:39 AM
Oldbitcollector said...
... I did stumble on a simple method of hand clap controls. Interesting?
@OBC: Technically, wouldn't that be sub-Hertz PCM ? http://forums.parallax.com/images/smilies/smilewinkgrin.gif

clap clap clap

"Yes Master, fetching your slippers now..."



Hanno said...
Great discussion! ... let's see where this takes us!

@Hanno (and all): I just had a very crazy thought.· Could PID techniques be applied to voice recognition?

I mean if Viewport "can land a man on the moon," why can't we put PID to work landing a few words in the Prop?

Is that far fetched?

- Howard


▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Hanno
08-31-2009, 04:53 AM
OBC,
Maybe the Propeller can turn lights on and off? Then we could write a "clapper" application! :)

Howard,
Sorry, not following you. PID isn't magic, neither is ViewPort or fuzzy logic. And for that matter neither are the good doctor's neural networks. There's been decades of work getting computers to understand text- and yes, it typically involves working in the frequency domain to look for formants. Without AI, error rates are still unacceptably high. However, getting the Propeller to the level of my dog should be possible.
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

CounterRotatingProps
08-31-2009, 05:35 AM
Hanno said...


Howard,
Sorry, not following you. PID isn't magic, neither is ViewPort or fuzzy logic. ...
No problem, Hanno - that·was about as·vague of a shot in the dark as it gets :)).

I was·musing:·P.I.D. divides up the work. As in·"·I "·deals with·the time·and/or freq.domain with simple, discrete integrals. The setpoints could roll/move dynamically over the wavefile creating formant-like info on the fly, that would be the " P "...·(ah... but·non-linearity issues·... I don't know if gain scheduling would have too much overhead). The " D " then acting in a way similar to what OBC and Microcontrolled have done. But then there's the 'noise' factor that dynamic setpoints would cause - like somekind of weird harmonic oscillation.·

To me, extracting the 'correct' result from whatever sample you use is a PID process ... maybe Dr.YouKnowWho wasn't so farout with the idea of "error correction"?

I know I am articulating this very poorly - does this make any sense? I'd rather throw it out there now and refine it later ...

>·... However, getting the Propeller to the level of my dog should be possible.

Then you have one *very* smart dog !

Woof Grrr Woof = "No, Master - you go fetch your own slippers today" :))

- H

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Oldbitcollector (Jeff)
08-31-2009, 06:09 AM
On my way along this path I fell on this idea...

Finger-Snap Commander.
--------------------------------

Detects 1-3 finger snaps (or table knocks) in succession.
Not perfect, but it does actually work.

Using the microphone on the Demoboard for sampling.

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

webmasterpdx
08-31-2009, 06:09 AM
First, I never said experimentation was a bad idea. I do it all the time. I just said....proceeding without looking it up on the web first isn't the most productive way to proceed. Anyways, I'm not interested in arguing research methodology.
However, You guys got me interested in speech recognition again and I found some interesting links. Note that some of these links will disappear as OGI.COM will disappear eventually as the university in question has been closed down by their "mother ship" ohsu.

First of all, for y'all there is a great page on spectrographs for speech recognition. Basically these are frequency 2D graphs of sound. The red in the pictures show the dominant frequencies for these sounds. They are concerned with the F1, F2 and F3 Formants, since these are what are used. However, they also show how to recognize certain consonants. This page is at:
http://cslu.cse.ogi.edu/tutordemos/SpectrogramReading/ipa/ipahome.html
Be aware that there are ranges of formants for male and female voices for each vowel sound (if you want to create a generalized speech recognition that doesn't require teaching).

Another useful one I found is on Hidden Markov models. I'm new to this too so I'm just starting to read on this...looks very interesting. Seems to be based on probabilities of the sound being uttered being the one compared against:
http://en.wikipedia.org/wiki/Hidden_Markov_model#Architecture_of_a_hidden_Marko v_model

Finally, I have a neat little algorithm I developed I call the tri-band FIR algorithm. I developed this for an application on a PIC to calculate a filter for 3 types of filtering, Low pass (LPF), Band Pass (BPF) and High pass (HPF). First, I just found one of the many java sites on the web that will generate arguments to a FIR filter. I was using a simple FIR filter of the form aS0+bS1+cS2. The java program I was using gave me the parameters for LPF and HPF. What I discovered first is the same parameters were used in both the LPF and HPF but just a minus sign here and there was all the dfference (i.e. there was symmetry in the calculations).
Secondly, I found that I could round the arguments (given as floating point) to values that are close to fractions involving powers of 2 (e.g. instead of 0.371, I could use 0.375 which is 3/8). So, basically what that did for me was to enable me to estimate s * 0.371 by (s<<1 + s) >>3 or instead of requiring floating multiplies, just shifts and adds would allow me to calculate my FIR filter calculations. By storing intermediate values and reusing values for the LPF and HPF, I was able to reduce the calculations down further and finally by just subtracting (LPF+HPF) from the original signal would give me the BPF values.
This can be applied to any calculations actually, but for a FIR filter it was especially efficient. I had been using the state variable filter by Hal Chamberlain from his book (Musical Applications of Microprocessors) but this algorithm was faster when implemented in assembly language, didn't have scaling issues I had to take care of (which is a problem with the state variable filter) and gave much better results when I used it with known signals which I created mathematically on a PC and plotted using gnuplot.

Hopefully some of these may be of use to you.

Good Luck.
-Donald

CounterRotatingProps
08-31-2009, 06:28 AM
Donald,

thanks for all the links --- some good reading material in there indeed! The FIR filter looks intreguing--- have to study what you say more...

> Anyways, I'm not interested in arguing research methodology.

When we all 'argue' here it is actually nearly always polite. As you hang out around these forums, I have no doubt you will be surprised by not only how nice and polite folks here *really* are, but also by how helpful everyone is. These are indeed not the ordinary internet-style of forums.

Pull up a virtual chair, relax, and enjoy!

Looking forward to your contributions.

Cheers
- Howard

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

Phil Pilgrim (PhiPi)
08-31-2009, 06:40 AM
Donald,

Thanks for the links. I've downloaded the Rabiner HMM paper mentioned in the Wikipedia article. It appears that some familiarity with linear predictive coding (LPC) is a prerequisite. 'More to explore there.

The February 1998 Circuit Cellar article mentioned earlier is perhaps the most interesting, mainly because so much was accomplished with such a primitive (by today's standards) microcontroller. Unfortunately, the author glosses over one key aspect of his algorithm (the time normalization step), making it necessary to dig into the assembly code to unravel it.

I've been working on a simple template matching scheme using the Goertzel algorithm to process incoming sound into discrete frequency bands. I've had a small measure of success, but nothing worth posting just yet. The Goertzel part works well in real time, so I should probably polish it enough for the OBEX. Then maybe someone else can use it to advantage.

-Phil

CounterRotatingProps
08-31-2009, 06:56 AM
> Goertzel algorithm

Neat, Phil ... looking forward to seeing how you·treat the cos() and " i " functions.

If you understand the Goertzel algorithm enounh to code it, linear prediction should be a piece of cake. (I studied this stuff too long ago, and have forgotten most, but this thread and a few others have renewed my interest to relearn it.)

One thing that might be useful - if you've not thought of this already - is to have several user-settable runtime variables for:

- the number of filters
- filter center freq.
- filter Q
- and, maybe (probably!), gain/attenuation (per filter)

this would make it into a big, runtime parametric equalizer - or rather a comb filter.

(RE PID: These parameters could be controlled as part of the feedback setpoints I mentioned earlier.)

thanks for your efforts!
- Howard

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

webmasterpdx
08-31-2009, 07:32 AM
Just to note someone mentioned needing to calculate cos(). If you are referring to the trig function, the ROM has a full sine function 2K values. You should be able to calculate the cos quickly using a lookup into that table. cos(x) = sin(pi/2 - x) or something like that http://forums.parallax.com/images/smilies/smile.gif
For computer graphics, I've usually been able to use trig functions based on a 256 entry table of values. In this case, the angles are measured in what is known as bittrians. These are where 90 degrees = 256 bittrians. Then you convert your angles to bitrians and then convert the calculation to a quadrant and look it up in the bittrian table and you are done....very fast.
Generally for graphics (even 3D) you usually don't need values with more than 8 bits of resolution. There are many other applications where you don't need high accuracy either.

enjoy...

Microcontrolled
08-31-2009, 07:44 AM
I love the level of activity on this thread!

I read that very good article on speech recognition and it has given me an idea for how to do low memory speech recognition. I will tell you the idea (which I don't really know if I got it straight form the text) if it works. I took the day off from programming so I will work on that tomorrow. Thanks for all your great ideas and input! Keep it up!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

jazzed
08-31-2009, 08:05 AM
CounterRotatingProps said...
The merit in reinventing is learning the shape and function of wheels.


Hey nice quote. That's kind of like the tag line seen around these parts: "fix it if it ain't broke."

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve

Propeller Tools
Propalyzer: Propeller PC Logic Analyzer (http://forums.parallax.com/showthread.php?p=788230)
BMA: An on-chip PASM Debugger (http://forums.parallax.com/showthread.php?p=829927)
SPUD: Spin Source Level Debugger (http://forums.parallax.com/showthread.php?p=831329)

webmasterpdx
08-31-2009, 08:52 AM
If you do develop a speech recognition algorithm, you'll probably want to do some filtering, so understanding FIR filters is probably a good idea (lots of stuff on the web).
Also, the main chip company for speech recognition chips is sensory Inc (www.sensoryinc.com). Their 4X series are for recognition. The chips are cheap but the software is what you pay for http://forums.parallax.com/images/smilies/smile.gif Looking at their chip's block diagram might give you an idea as to how to break up the cog functionality. Of course, they have a digital filtering block.

Now, the issue that I never got a chance to realize when filtering audio, was if it were possible to filter in real time with arbitrary sample lengths. Let me explain.
My application where I used that FIR algorithm I mentioned earlier just used 32 samples at a time....and I filtered in blocks.

So, I'd sample 32 samples (s0 through s31). Then I was applying a FIR filter of the form aS0+bS1+cS2 and the next one would be aS1+bS2+cS3 and so on....
so, I'm using 3 samples, shifting one sample at a time. Now, the better way for real time work would be to do the filtering as the samples are coming in. So, you are sampling into one circular buffer. Then, maybe another cog is calculating the filter info using that buffer data and writing the results into another buffer. There may be more than one filter going at once. All you gotta do is make sure that there are enough samples in the buffers so that the filters can access the number of samples they need, and they can keep up with the circular buffer so the sampling doesn't overwrite a sample that is still needed by the calculations.

You also may want to just calculate the relative strength of the signal in a certain frequency range. This way you don't have to store the filtered values, just use them in some ongoing figure of merit calculation. Thats what I was doing with my app. I think I did an add and a shift to a running constant or something like that (I can't remember off the top of my head).

Another application here is applying it to lie detection. I was just watching discovery and they were showing how speech can show if someone is lying (this was different than stress analysis, but things like droops in pronoun pronunciation).

Better still is natural language understanding. Thats a big feature desired in the world at the moment. We are nearing the time of the star trek computer where we just tell it what to do. Typing is so passe.... http://forums.parallax.com/images/smilies/lol.gif

I just hope that instead of the blue screen my computer doesn't say illogical and start emitting smoke http://forums.parallax.com/images/smilies/smile.gif

-Donald

Beau Schwabe (Parallax)
08-31-2009, 11:46 AM
Phil and webmasterpdx have touched on some key aspects that I mention and have tried to explain.

Phil - ...the time normalization step...
webmasterpdx - ...relative strength of the signal...


While there is merit in looking at specific frequencies or formants within speech, at the same time, I feel that there is too much focus on looking at the formant frequencies. Specific formants are generally characterized to an individual person or small group of people and would be considered part of the noise mentioned in my document. Think of it in reverse with regard to Chip's Speech synthesis program. By adjusting the formants for F1,F2,F3, and F4 you end up creating a particular sound but the underlying 'recipe' or pattern used is the same, only the formants you specify change. By identifying the pattern of speech or the "relative strength of the 'entire' signal" and not just the strength at a specific frequency, we can ignore the frequency as noise and focus more on the underlying pattern.

Suppose that for a particular spoken word your sampled data comes in with a length of 250ms, and for the same word already in storage, it might have a length of 230ms because it was said just a little bit faster. Time normalization means that you make adjustments to the data by either stretching the 230ms to 250ms or compressing the 250ms down to 230ms. This step is critical to make sure that the pattern that you are looking for will align properly to the data received. If this step is skipped, it would require you to say the word at EXACTY the same rate that you sampled it at, otherwise the detection would be missed.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

Post Edited (Beau Schwabe (Parallax)) : 8/31/2009 5:03:00 AM GMT

dMajo
08-31-2009, 08:51 PM
Phil Pilgrim (PhiPi) said...

BTW, webmasterpdx, the word is "formant", not "forment".

-Phil
Phil, now I am becoming jealous!

You are correcting everyone's spelling errors except mine ! http://forums.parallax.com/images/smilies/nono.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
· Propeller Object Exchange (last Publications (http://obex.parallax.com/objects/?o=0&ot=dsc&n=20)/ Updates (http://obex.parallax.com/objects/?o=8&ot=dsc&n=50))

Phil Pilgrim (PhiPi)
09-01-2009, 04:21 AM
dMajo,

Why would assume you've made any spelling errors? http://forums.parallax.com/images/smilies/smile.gif

Beau,

You're right about the time normalization (which I prefer to call "dilation" to contrast it with amplitude normalization, which I also do). The tricky part is determining where each utterance begins and ends. It's not enough just to set a threshold, apparently. What I've had to do is set a low threshold to start capturing, then measure the highest amplitude during the 1.28 sec capture interval. The span of the utterance is then taken to be the smallest interval required to contain all amplitudes (in eight channels) that are at least 6% of max. These are then expanded linearly over the entire 32-sample array.

My biggest concern initially was with compression: i.e. do you throw stuff out or average neighboring samples? But by always expanding (i.e. duplicating), you don't have to worry about information getting lost, either by removal or by mushing its neighbors.

I've found that the Goertzel algo is helpful to distinguish words that have similar amplitude envelopes but that differ in their vowel content. I'm using eight frequency bands at present. I tried four, but it seems not to be enough. I'm also preemphasizing each channel by the fourth root of its center frequency. This seems to help with words like "three" that have high-frequency formants.

Also, rather than Cartesian distance, I'm using a Pearson correlation coefficient to rank each utterance against the trained templates (which makes me extra happy that the Prop can do 32-bit arithmetic).

There has been some work done with nonlinear time dilation to get a better fit between each utterance and the various candidate word templates. But that seems to have given way to the hidden Markov model approach.

-Phil

Beau Schwabe (Parallax)
09-01-2009, 04:34 AM
Phil Pilgrim,

"My biggest concern initially was with compression: i.e. do you throw stuff out or average neighboring samples?" - yes absolutely, you average neighboring samples.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Beau Schwabe (mailto:bschwabe@parallax.com)

IC Layout Engineer
Parallax, Inc.

webmasterpdx
09-01-2009, 02:47 PM
It does seem that the Hidden Markov model is the most commonly used, but I'm not convinced it's the best. I think doing fast correllation between some "signature" for the word and one captured in real time is the way to go. How to do that best is the trick. Getting the envelope of the signal and storing the change times and by how much, you might be able to capture consonants that way, and the vowels by doing something with the formants.

Lots of room for experimentation and invention. Become famous, invent a new fast way that works for any voice (without training the software for a particular voice) and that is accurate. This is still not a reality for a low cost. Sure you can get it to turn on an LED when you say "Computer" or something like that, but you cannot just speak and have it record the phonemes accurately in something the price of a propeller.....for anyone's voice.

This is the first step in the "star trek" computer phase which is eventually the way we'll go. The phase after that is natural language understanding but thats beyond the scope of this problem. First get the speech recognition working...http://forums.parallax.com/images/smilies/smile.gif

-D

Microcontrolled
09-05-2009, 04:17 AM
I haven't been ignoring this project, but I have been extremely busy this week and I have not gotten more then 6 hours work in on it. http://forums.parallax.com/images/smilies/freaked.gif

I am in a current state of confusion, but I won't let it die. I just want you to know that I will be on vacation starting Saterday morning at 2am and will not be availible unless I post on my Palm late at night. I won't be able to work on my programs while I am gone, but I was just letting you know that I am not giving up. I will see you all next week!

--Micro

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

If it's not Parallax then don't even bother.

I have changed my avatar so that I will no longer be confused with others who use generic avatars (and I'm more of a Prop head then a BS2 nut, anyway)

Oldbitcollector (Jeff)
09-05-2009, 04:56 AM
@microcontrolled:

Enjoy some time off... :)

OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Visit the: The Propeller Pages (http://www.warrantyvoid.us/tiki-index.php?page=Propeller) @ Warranty Void.

Hanno
09-05-2009, 11:44 AM
Yes, enjoy your time off! I have a feeling this challenge will still be around when you return, so relax and enjoy yourself. Wonderful how much discussion we've had due to this project- thanks OBC and Microcontrolled!
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Cluso99
09-05-2009, 10:36 PM
One part of me hopes that you will NOT succeed <grin> We already have too many computers answering the phones in large organisations! Can you imagine everyone installing a $20-50 prop board on their phones. Or worse yet, you knock at the household door and the prop asks you who you are, who you want to see and what you want and then politely tells you he/she is not in (for you)!!!!

Now, on the other hand, imagine telling the robot vacuum cleaner (Judy from the Jetsons fame) that you want it/he/she to vacuum the study today http://forums.parallax.com/images/smilies/smile.gif

This sounds exciting, but I have other things to do, so I wish you every success. After all, they mapped the human genome by looking at the algorithms differently http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=838091), RetroBlade (http://forums.parallax.com/showthread.php?p=838053),·TwinBlade (http://forums.parallax.com/showthread.php?p=806697),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index (http://forums.parallax.com/showthread.php?p=778427)) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

jazzed
09-05-2009, 11:12 PM
Actually it was "Rosie" the riveted robot. Judy was the daughter. But that's Ok :) Good memories.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Steve

Propeller Tools
Propalyzer: Propeller PC Logic Analyzer (http://forums.parallax.com/showthread.php?p=788230)
BMA: An on-chip PASM Debugger (http://forums.parallax.com/showthread.php?p=829927)
SPUD: Spin Source Level Debugger (http://forums.parallax.com/showthread.php?p=831329)

Cluso99
09-06-2009, 12:26 AM
Jazzed: Of course - just another senior moment LOL

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=838091), RetroBlade (http://forums.parallax.com/showthread.php?p=838053),·TwinBlade (http://forums.parallax.com/showthread.php?p=806697),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: Micros eg Altair, and Terminals eg VT100 (Index (http://forums.parallax.com/showthread.php?p=778427)) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Hanno
09-16-2009, 02:42 AM
Is Microcontrolled back yet? This challenge hasn't been claimed yet! There's still a free license to ViewPort Ultimate to the first person to demonstrate speech recognition on the Propeller... (see requirements above)
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Download (http://mydancebot.com) a free trial of ViewPort- the premier visual debugger for the Propeller
Includes full debugger, simulated instruments, fuzzy logic, and OpenCV for computer vision. Now a Parallax Product!

Microcontrolled
09-16-2009, 06:38 AM
I've been busy with other stuff but I am still working on the speech recognition. I've been gone for a week, and have had to catch up in school, so I have not had much Prop time. I am also currently busy on building a security system for a friend, so I am juggling 2 projects at once.

I've had no success with the SD card working, but because it is out of Hanno's requirements, that's ok. The one main problem is writing the voice samples to the EEPROM and then unloading and "compressing" them. I have given up on that idea so now I just desided to record them to internal RAM on startup and compress them to fit. Does anyone know how to compress files?

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

Want to·experiment with the SX or just put together a cool project?
SX Spinning light display· (http://www.gadgetgangster.com/find-a-project/56?projectnum=200)

Hanno
10-14-2009, 06:09 AM
Microcontrolled- any progress? Or anyone else? My challenge, with the free ViewPort Ultimate license ends in 3 days! I'll start a new challenge then....
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Co-author of the official Propeller Guide- available at Amazon (http://www.amazon.com/Programming-Customizing-Multicore-Propeller-Parallax/dp/0071664505)
Developer of ViewPort (http://mydancebot.com/viewport), the premier visual debugger for the Propeller (read the review here (http://www.parallax.com/Portals/0/Downloads/docs/article/ROBOT_ViewPort.pdf)),
12Blocks (http://12blocks.com), the block-based programming environment
and PropScope (http://mydancebot.com/propscope), the multi-function USB oscilloscope/function generator/logic analyzer

Microcontrolled
10-14-2009, 07:48 AM
No luck. You'll need someone more professional to meat your standards.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Computers are microcontrolled.

Robots are microcontrolled.
I am microcontrolled.

But you·can·call me micro.

Want to·experiment with the SX or just put together a cool project?
SX Spinning light display· (http://www.gadgetgangster.com/find-a-project/56?projectnum=200)

Mike Green
10-14-2009, 08:05 AM
"Professional" is a state of mind and how you behave.

Phil Pilgrim (PhiPi)
10-14-2009, 08:28 AM
Microcontrolled,

I've discovered — to my great chagrin — that one is credited with the projects he finishes, not with the ones he starts. (If only it were otherwise! I'd be living it up on stock dividends by now. http://forums.parallax.com/images/smilies/smile.gif )

-Phil

Hanno
10-14-2009, 08:50 AM
HINT- USE ME!!!! (http://forums.parallax.com/showthread.php?p=837331)
Hanno

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Co-author of the official Propeller Guide- available at Amazon (http://www.amazon.com/Programming-Customizing-Multicore-Propeller-Parallax/dp/0071664505)
Developer of ViewPort (http://mydancebot.com/viewport), the premier visual debugger for the Propeller (read the review here (http://www.parallax.com/Portals/0/Downloads/docs/article/ROBOT_ViewPort.pdf)),
12Blocks (http://12blocks.com), the block-based programming environment
and PropScope (http://mydancebot.com/propscope), the multi-function USB oscilloscope/function generator/logic analyzer