08-01-2007 03:08 AM
08-01-2007 04:20 AM
hi there
i have some questions:
- what has to be compared? energy, spectrum (rel. or absolute), amplitude (rel. or absolute)?
- is the measurement equipment and the measurement setup identical for all bursts? (this effects the measured data)
- are there any criteria for "burst differ" and "bursts equal" defined?
08-01-2007 04:55 AM
08-02-2007
03:53 PM
- last edited on
05-23-2025
06:54 PM
by
Content Cleaner
Hi Sunil,
It sounds like you are trying to write a voice recognition program.
In general, if you have Advanced Signal Processing Toolkit or the Sound and Vibration Toolkit, you will get VIs that provides signal processing that allows to do frequency spectrum analysis. What tools do you have available?
Yi Y.
Applications Engineer
National Instruments
http://www.ni.com/support
08-02-2007 11:06 PM
08-03-2007 12:22 AM
08-03-2007 05:06 AM
08-03-2007 06:01 AM
08-05-2007
11:14 PM
- last edited on
05-23-2025
06:55 PM
by
Content Cleaner
Hi Sunil,
All the VIs in that examples are attached in the libraries. They are under the ...\vi.lib\addons\MSAgent Voice\MSAgent.llb in the folder that you extrated the exe to. It appears that the article is quite old though, and the link to Dragon Naturally Speaking is broken. So you need to have MSAgent installed. The readme file is located at ...\vi.lib\addons\MSAgent Voice
If you simply want to do frequency spectrum analysis, you'll probably have to have Advanced Signal Processing Toolkit at least, or you'll have to program your own. The Sound and Vibration Toolkit would probably suite your needs better and more information is available at https://www.ni.com/en-us/shop/product/labview-sound-and-vibration-toolkit.html.
I've never tried to do write a speech recognition program, but I would try two things:
1. ignore the frequencies, and just look at the amplitude vs time graphs. This might not work well at all, and you have to take into account words that are said at different speeds. Lets say you get a "burst" (the audio for a word) that lasts .5 seconds, resize all audio samples to last .5 seconds, and run compares between all of them and the samples. Assume the answer returns the highest compare value, where the compare value is the integral of the absolute value of the two (smoothed) curves subtracted from each other. I think maybe one of the correlation VI does that, so maybe you have tried it already.
2. The other thing I'd try is to sample the audio at a pretty high rate, and take like 100 FFTs per second, each on a 10ms chunk of a "burst". Let's say the burst is .5 seconds long, scale all samples to .5 seconds, then compare all segment FFTs (all 50 of them) with each set of segment FFTs for the samples. Do a comparison the same way, first for each segment, then sum all segments, and take the result with the compare value (difference from sample) closest to zero.
I'm not sure if this will work, the key may be smoothing the data a bit before it's filtered, otherwise it can be spikey and crappy and impossible to deal with. You might want to smooth the data after FFTing it, NOT before. Otherwise the FFT will lose higher freq results (depending on how much smoothing and the audio sample rate).
Hope this helps.
Yi Y.
Applications Engineer
National Instruments
http://www.ni.com/support
Message Edited by Yi Y on 08-05-2007 11:15 PM
Message Edited by Yi Y on 08-05-2007 11:19 PM
08-06-2007 01:53 AM