Project - Voice eBlock
Design Project in Architecture / Embedded Systems
| Week 1 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Jan 5 | ||||
| Tue, Jan 6 | ||||
| Wed, Jan 7 |
2 |
Created Website
Preliminary web search |
||
| Thur, Jan 8 |
3 |
Found links to some sound/voice
recognition integrated circuits
Found links to some examples of products that contain some of the attributes we want for voice activated eBlock |
These ICs might not be suitable for our
voice eBlock. Costly.
Inexpensive products do exist that respond to simple voice commands so voice activated eBlock is definitely feasible. |
Example of inexpensive product which respond to voice command |
| Fri, Jan 9 |
2 |
Found some links to 'Clapper' related information | Not exactly what we want for our voice eBlock but may give some ideas. | Clapper |
| Sat, Jan 10 |
2 |
Looked over eBlock Homepage
Found link to costs of HM2007 |
Found that HM2007 can operate in two
modes, manual (through keypad) and CPU (interface with microcontroller).
Some of the eBlocks appear to be quite useful. |
HM2007 Link 2 |
| Sun, Jan 11 |
2 |
Checked out ---'s Log Found some more info on voice recognition ICs |
--- raises a good point about finding out how much power it draws. | Voice Recognition IC Link |
| Week 2 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Jan 12 |
4 |
Compared Voice Direct II and Voice
Extreme from Sensory Inc.
Researched Voice Direct I. Also made by Sensory Inc. but is discontinued. Using off the shelf IC seems to be the best bet from what I have gathered so far. Speech recognition is complex. With our limited time, using existing DSP IC seems to be the way to go. This opinion may change if I learn more in the coming days. Found a link to a project utilizing a PIC microcontroller along with Sensory Voice Recognition module |
Both require kits to program the VDII or
VE module respectively. VE is done through programming in VE-C while
VDII is done by buttons on the motherboard.
Both kits contain a module which contains the IC, external components and memory on a single PCB ready to connect to a product after programmed. The module is good for prototyping. Voice Extreme Kit is more costly then Voice Direct II Kit. Voice Extreme is speaker independent capable (custom speaker independent word sets must be ordered through Sensory at additional cost. No tool exists to create custom SI vocabularies) My guess is that this is how they make money in terms of a service provider model on top of just their physical products (ICs, Tool Kits, etc) From the review of Voice Extreme Tool kit "This said, the kit doesn't come completely devoid of any SI weight file, but comes with 6 very well hidden (not mentioned in documentation) weight files that contain the digits from zero to nine, commands useful for mobile robots ("go forward", "stop"), commands useful for an answering machine ("call", "erase"), and another set useful for a security system ("arm", "disarm")." Voice Direct II is speaker dependent. It would appear Voice Extreme is more robust Mass volume would require just purchasing just the ICs and components and developing own PCB board. Would reduce costs. May still be too pricey for eBlock. |
Active Robots Review of Voice Extreme Tool Kit Voice Recognition Alarm System Sensory Inc. (From Long's Log) |
| Tue, Jan 13 | 3 | Worked on proposal with ---- | Proposal (original) | |
| Wed, Jan 14 | 3 | Got development environment for PIC setup on my computer | Compiled sample blinking lights code and
programmed PIC. Tested on breadboard The schematic shows LED connected to port A, when code flashes LED on port B actually. Stuff I've noticed: If unplugging the AC adapter from the programmer if the computer is on and you wish to reconnect the adapter to the programmer to program the PIC again, restart giveio.sys using LoadDrv. If this is not done, FPP gives an error. |
|
| Thur, Jan 15 | 0 | |||
| Fri, Jan 16 | 3 |
Updated proposal |
Hopefully a final decision is made tomorrow on which design to proceed with. Decision will depend on discussion during group meeting tomorrow. Once a decision is made, can move onto creating a parts list. |
Updated Proposal (updated) |
| Sat, Jan 17 |
2 |
Met with the rest of the class to discuss possible group project. Location: Science Library, First Floor | Everyone agreed to develop a
joint speech voice recognition eBlock and develop in parallel, one or more
clapper-type eBlocks for backup.
Must wait for approval from Dr. Vahid and Susan |
|
| Sun, Jan 18 |
|
Read "The Art of Designing Embedded Systems" (our required text) | An excellent read! | |
| Week 3 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Jan 19 |
3 |
Worked on a trade-off analysis (chart form). | Trade-off analysis (Has info that applies to both situations, class project as well as individual groups) | |
| Tue, Jan 20 |
4 |
Worked on the power
estimation handout
Updated Trade-Off analysis |
Must organize a
parts list for the class project based on Voice Extreme. (Tomorrow
morning) --- raises a good point if Dr. Vahid and Susan do not accept our proposal to work together as a class. |
Class Stuff (the
ideal case) Class proposal. (Long)
Clapper-type parts list (alternate design) |
| Wed, Jan 21 |
3 |
Met with the rest of the class
at 9:00 am to discuss progress and issues. Location: Science Library, First
Floor Met with class again at 8:00 pm to discuss proposal. Location: Science Library, First Floor |
Delegated parts of proposal to be done by individual group members. | Notes from meeting |
| Thur, Jan 22 |
2 |
Worked on my section of the
proposal Doing some more research to improve trade-off analysis |
Contribution to the
proposal draft
| |
| Fri, Jan 23 |
2 |
Post updated trade-off analysis |
Trade-off analysis Group Proposal (compiled by ----) | |
| Sat, Jan 24 |
4 |
Met with the rest of the class
at
2:30 pm to work on the the clapper-type eBlocks as well as understand how
the button and LED eBlock work. Location: Surge 283 Reproduced what we had done in the lab on my own computer, compiled and programmed the PIC with code for button. |
Team ran into some roadblocks
while attempting to create the clapper-type eBlocks. Need to work in
the EE labs to have access to an oscilloscope and power supply.
Went over and tried to understand the code for the button and LED eBlock. |
|
| Sun, Jan 25 |
0 |
|||
| Week 4 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Jan 26 |
4 |
Started to read in detail the
Voice Extreme programmer's manual PDF. Group meeting at 6:00pm at Surge. I arrived at 7:00pm and worked with ---- and ---- till 9:00pm Corrected a few dates in my part of the group proposal. I just realized that my dates were off by a week. |
Did the VE Kit include a
hardcopy of this manual? I recall only seeing the starter manual.
It's included on the CD and ---- printed it along with the rest of the
documentation. The binder with the documentation is next to or on top
of the cs179j computer for anyone to use. Wired together a clapper circuit earlier in the day before the meeting. Worked with ---- and ---- to code some simple program for the VE. Got it to respond to 'yes' and 'no' to turn on led. Tested my clapper circuit using ----'s batteries and microphone. Sensitivity needs to be adjusted but it does respond to claps and loud noises. It appears that we now have 3 clapper circuits. Next step is to interface the output of the clapper circuit to the PIC. |
VE programmer's manual PDF |
| Tue, Jan 27 | 3 | Some clapper research.
Re-read some parts of ADES |
Looked into using 555 timer to
limited the time the clapper listens for. Trying to limit the duration
equivalent to a clap.
Looked into the other clapper circuit. The one reverse engineered from an actual clapper. Was getting frustrated at the circuit that we are currently using since it seems to be sensitive. The one that is reversed engineered seems to use a bunch of logic gates. |
Clapper |
| Wed, Jan 28 | 1 | Informal meeting before class. | ||
| Thur, Jan 29 | 4 | Went out to e-warehouse to get a NAND IC and a flip-flop IC. Connected clapper circuit to PIC. | The output of the clapper
circuit is not TTL. The output of the clapper circuit is the voltage
of what is feed into the clapper circuit so if the circuit is feed +/- 9V,
then the output will be around that as well depending on whether if the
signal is high or low. I used a NAND IC which outputs a TTL signal.
This gives the 0V that was needed to trigger the input port of the PIC
similar to that of the button eBlock.
Tested connected circuit (clapper + PIC) connected to LED eBlock. Claps and loud noises turn on LED eBlock. Status LEDs seem to be working correctly as well. Must refine the clapper circuit greatly. It picks up coughs and sudden loud noises easily. Doesn't pick up normal talking and music. Still using the clapper circuit which uses two 741 op-amps. |
|
| Fri, Jan 30 | ||||
| Sat, Jan 31 | 3 |
Met with the rest of the team at Surge |
Got the clapper circuits interfaced with the PIC. --- and ---- interfaced the VE dev board to the PIC. |
|
| Sun, Feb 1 | 6 |
Worked on updating my section of the proposal (what I am doing specifically) as well as updating tradeoff analysis. |
| |
| Week 5 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Feb 2 |
2 |
Continued work on tradeoff analysis |
Contribution to the
proposal draft (includes what will keep me busy the next few weeks) My Trade-off analysis (in progress) | |
| Tue, Feb 3 |
3 |
Got the battery connected to the clapper eBlock circuit. | Circuit can now function without the use of the AC adapter. Things to do before 2nd prototype. Must shrink circuit down before next prototype date. Calculate power consumption. | |
| Wed, Feb 4 |
2 |
Meeting before class. Did some more reading on voice recognition, mostly the links on the other team member logs. |
||
| Thur, Feb 5 |
0 |
|||
| Fri, Feb 6 |
1 |
Began looking into ways to detect 2 claps for clapper eBlock to make it more reliable | ||
| Sat, Feb 7 |
3 |
Meeting at surge with 283 with ---- and Long | Went with ---- and Long to e-warehouse to pick up prototyping stuff for the VE based eBlock. ---- added code to the VE so that it recognizes a number before recognizing command 'yes' or 'no'. In this fashion, multiple VE based eBlocks can be placed near each other. A user would assign a number to a particular VE based eBlock through a dipswitch. He or she would then activate a particular VE based eBlock by saying the number assigned by him or her to that block followed by a 'yes' or 'no' command. System was much less responsive compared to just attempting to recognizing 'yes' or 'no' since VE had to 1. recognize the number correctly followed by 2. recognizing the command 'yes' or 'no' correctly. Probably have to adjust confidence levels but at 65% confidence, the usability of the system was less then ideal. | |
| Sun, Feb 8 | 0 | |||
| Week 6 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Feb 9 | 1 | Spent some time reading about voice recognition from online sources to get a better idea what is actually computed and the concept behind it. Took some notes (will post up a link to notes soon) | Some quick notes that stand out.
Hidden Markov model requires large database of spoken words to be effective.
Sonic Speech fro University of Colorado uses HMM (3 states) modeled using
multivariate Gaussian densities. Each state has a typical 6-32
densities. For a state with 6 densities, 480 Floating point multiplies
and 234 subtractions are needed.
Speech is low bandwidth - 100Hz - 8KHz 8000 samples per second (sufficient for basic) |
My notes |
| Tue, Feb 10 | 3 | Continued to read about voice
recognition, specifically an ee senior design from last year.
(link from RJ's page)
Found the link Dr. Vahid pointed out. |
Quick notes - microphone is poor
substitute for ear. Works by measuring voltage generated by changing air
pressure. Maybe this is why blowing on the mic causes clapper to go
off?
term - intra-speaker differences - words spoken differently by same person. variations such as higher amplitude and words being stretched. representation of audio capture for purposes of voice recognition in terms of voltages is no good. Must use frequency domain. Frontier Design no longer exist. Phillip's spin off of its DSP business merged with Frontier Design forms what is now Adelante Technologies. Their speech recognition is based on word-based MEL frequency transformation combined with Hidden-Markov modeling and Viterbi search techniques for matching. To my understanding, they design RT-level DSP cores which are configurable and scalable which are optimized for high volume, cost sensitive applications such baseband processing for wireless handsets and LANs, speech recognition and such consumer applications as MP3 players, digital cameras, PDAs, VoIP devices. Saturn Core - 0 - 210MHz clock, 0.5 mm^2 silicon area, 0.25 mW per MHz, 12 operations per clock cycle for 420 million multiply and accumulate operations per second. Arithmetic Logic Unit (ALU) combination offering two 40-bit ALUs for high-precision calculations for such applications as speech and voice recognition. |
Speech-recognition core targets high-volume apps Embedded News (about Adelante's Saturn Core) http://www.adelantetechnologies.com
|
| Wed, Feb 11 | 2 | Continued to read up more on
voice recognition Checked out all the logs of team members to see progress being made. |
||
| Thur, Feb 12 | 1 | Minor documentation update | Updated list of parts for clapper eBlock and made a cleaner schematic. | |
| Fri, Feb 13 |
0 |
|||
| Sat, Feb 14 |
3 |
Met with ---- to work on the clapper eBlock. | Calculated the power consumption
of the current circuit. We calculated that a clapper eBlock would last about
25 days. Power is definitely a problem with this design. Will
have to meet with the rest of the group to think of solutions.
Tried to replicate what Long and RJ had done for their clapper eBlock. To keep outputting 'yes' or 'no' until the next clap is heard. ---- and I tried modifying the code for the button eBlock but were not successful in replicating the result. Will have to talk with Long and RJ. |
|
| Sun, Feb 15 |
1 |
Doing some more investigation on
other clapper circuits.
|
Probably not the best time for a redesign of our clapper but wanted to see what other approach we could have taken. | Clap Activated Remote |
| Week 7 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Feb 16 |
3 |
Read what RJ had done for their clapper. The 2 clap idea specifically. Read the advice and will give it a shot tonight. Will post results later tonight. | Excellent explanation of the 2
clap solution by RJ. I followed RJ's explanation and made the
adjustments to the button eBlock code, debugged, and tested.
Copied and pasted from RJ's page Solution to "two clap" problem: Keeping track of the time in between claps by means of a simple loop wasn't working, so I decided to keep track of a "timeout" variable. Basically, when the first clap is heard, a timeout variable is set to zero. That timeout variable gets incremented every 10ms. When that timeout variable reaches 400 (4sec), I tell the eBlock to ignore that clap. If another clap is heard within that 4 sec, the timeout variable is also reset and the status variable is toggled. I'm going to adjust the resistance to vary the comparison voltage to decrease the time the comparator output is high for a given pulse out of the peak detector. As of now, there is a slight delay and I can't just clap two fast continuous claps. I have to clap two distinctive claps within the time interval of 4 sec to trigger a 'yes' output. I don't know if others are experiencing this but my programmer is failing to program consistently recently. It will take a few tries before it programs the PIC. |
Building recognition into portable prodcuts |
| Tue, Feb 17 |
3 |
Plan to meet with ---- in Surge
283 at 1:00pm to lend him programmer to try out sleep mode of PIC.
Met with ---- and --- to work on sleep mode for PIC. |
If successful, rework power
consumption calculations for clapper eBlock and make changes accordingly to
the clapper eBlock code.
Sleep mode code is on the 179 comp if anyone wants to play with it. We were successful in programming a PIC with the code but are unsure if the PIC is actually 'sleeping'. Need to test further to be sure the PIC is asleep. |
|
| Wed, Feb 18 | 0 | |||
| Thur, Feb 19 | 1 | Plan to meet with
---- to shrink down circuit on breadboard to demonstrate that it can fit
inside an eBlock housing. Also will attempt to integrate sleeper code
from Tuesday with that of the current clapper code.
Met with ---- to shrink down the circuit. |
Circuit down takes up 12.5cm by 5 cm on breadboard. Can be reduced further, still some empty gaps in the space given above. Circuit still works after shrinking it down. Did not get to combining sleep code yet. Will attempt after getting on board comparator to work. Getting the comparator to work should remove the use of the NAND gate as well as the second op-amp. As a result, the needed spaced will be reduced by half as well as saving power. | |
| Fri, Feb 20 |
1.5 |
Looked over how to use the comparator on the PIC. | ||
| Sat, Feb 21 |
2 |
My programmer no longer programs. After using it on Tuesday on the 179j computer, I now can no longer program any PICs on it at anywhere. | I was about to try modifications to the code to get the comparator to work but now am unable to do so since there is apparently something wrong with the programmer. All my attempts to fix problem proved futile. | |
| Sun, Feb 22 | 1.5 | Looked more into how to use comparator and sleep mode as well from PIC documentation. | Added and changed some code but unable to test because of the problem described above. | |
| Week 8 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Feb 23 |
2 |
Obtained new programmer and two new PICs from Susan. Returned the programmer and two PICs I received in week 2. | Experiencing the same problem as before. Programmer programs a particular PIC once and refuses to program again. Emailed Susan to determine the status of the programmer and the PICs I returned earlier today. Hopefully they are still working and functioning because if they are not, the batch I got today faces the same doom. Made some additional modifications to code but once again, unable to test. | |
| Tue, Feb 24 |
7 |
Worked on clapper eBlock as well as observing and assisting ---- and --- when needed on VE eBlock. | Discovered that the problem was
a faulty regulator which kept outputting 7-8 volts instead of the 5 volts
that is needed by the PIC thus explaining the problems of the past few days.
Did not immediately see problem until Susan pointed out possibility since
PIC kept functioning but were not able to be programmed again.
Lesson learned - Measure voltage before plugging anything in. Spent most of the day just getting the circuit to how it behaved a week ago. Shrinking and moving the circuit to a new board did more then we originally thought. Whenever we got back to the state we were at a week ago, we would try to go forward with the onboard comparator only to have new problems creep in. Afraid to not have anything to show tomorrow and do any more damage, we stopped attempting to get the onboard comparator to work today. We have changed code to enable the onboard comparator, specifically comparator #2 on the PIC but the code is currently not loaded for the demonstration tomorrow. The idea behind it is to move the LEDs to port B, enable RA1 and RA2 to be inputs. Set the comparator module (cmcon) register bits to 0x25 to enable the comparator mode which just enables comparator #2. To determine the output, we read from bit 7 of this register. |
|
| Wed, Feb 25 | Decided to go with a clapper that plugs into a wall socket for power since battery life is well below a year. | |||
| Thur, Feb 26 |
3 |
Plan to meet with ---- today to
finalize circuit that will be placed into the box. The plan is to solder and
physically put the circuit into the box on Saturday.
Went to Susan to replace all the dead PICs and got a power jack which will be used to attach AC->DC adapter to our clapper eBlock. Met with ---- to fix our clapper eBlock. Will be meeting with ---- on Saturday to finalize block. |
Our clapper eBlock is
functioning 100% as planned. It detects claps from across a room.
The solution we discovered was to not power the NAND gate IC. Just to
have it grounded on the same ground as the PIC. All indicator lights
are functioning correctly. Functions as planned with light LED
connected to it. All is well now and we will probably not try to
attempt anymore modifications from this point on since our final
implementation is due next week. Final step is to package the clapper
eBlock.
Made some rough measurements where to drill to place LEDs, MIC, power jack and status indicator of claps |
measurements of where to drill and place mic, leds, on/off switch, etc. |
| Fri, Feb 27 |
0 |
|||
| Sat, Feb 28 |
7 |
Finalized what will be soldered | Went to electronics warehouse to get some LED holders. Decided to stick with using 9V AC->DC adapter since our design has been using this setup for a while now except design was connected to 9V battery before. We connected to 18V supply, supplying 9V and -9V to op-amps, did not extend range of design by much so we stuck with 9V setup where +4.5 and -4.5 is provided to op-amp. Gives us about 5-6 feet range. Attempted to solder but solder we had was too thin so we will attempt again on Monday. Applications might be limited to small rooms. | |
| Sun, Feb 29 |
0 |
|||
| Week 9 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Mar 1 |
8 |
Soldering at 3pm until done Met with ---- to solder circuit. |
Soldered everything except for the status LEDs and transmission line since we need the holes drilled first. Need holes drilled in the box and the solder the LEDs and the block should be complete. The soldering came out okay but realized that we should have used thinner wires since they are more flexible. Testing soldered circuit showed circuit still functioned as planned. | |
| Tue, Mar 2 |
9 |
Tasks for today. Research
habits and work on presentation/study for quiz. Get holes drilled and
solder on status LEDs/transmission line.
Met with ----, --- and ---- today. Worked on clapper eBlock. Worked on presentation/studied for quiz. Checked out the status of the other clapper and chatted with Kai |
Got all components into the box
and soldered on status led and transmission line. An AC-> 9Volt DC
adapter that I used is actually outputting 14 volt output. Mislabeled?
Since AC->DC adapter is acting funny, tested circuit again using 9V battery.
The circuit seems to be fine and not damaged from the 14 volt
experience. The block should function when used with a 9V
adapter. Still have to glue components to the case. As of now,
they are sticking out of the case and not firmly secured. Need to
re-solder a connection to the power jack tomorrow.
Researched Habit 1 from the Seven Habits of Highly Effective People. Reviewed trade-off, overview of habits and speech reorganization concepts. |
|
| Wed, Mar 3 |
|
A wire to the switch broke, need to re-solder | ||
| Thur, Mar 4 | ||||
| Fri, Mar 5 |
1.5 |
Glued leds and switch onto box | ||
| Sat, Mar 6 |
3 |
Met with ---- to work on final
report Plan to work on presentation slides on Monday |
Worked on final report after dividing the work up. | |
| Sun, Mar 7 |
1 |
Continued to work on final report | ||
| Week 10 | ||||
| Date | Hours | Summary | Ideas/Issues/Plans | Links/Documents |
| Mon, Mar 8 |
3 |
Met with ---- to work on presentation. Made PowerPoint slides. | Re-soldered wire that disconnected from switch | |
| Tue, Mar 9 |
9 |
Worked on Final Report.
Meeting ---- at 5 to finalize details on report and prepare for
presentation.
Met ---- at 5 and worked on schematic. |
Created Data-Sheet and added user's guide. Put all the different documents together to form the final report. |
Final Report
(.pdf)
Includes all appendices |
| Wed, Mar 10 | ||||
| Thur, Mar 11 | ||||
| Fri, Mar 12 | ||||
| Sat, Mar 13 | ||||
| Sun, Mar 14 | ||||
Last Updated: 03/07/04