-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Voice detection detecting wrong phrases #29
Comments
I'm having the same problem as well on my build with the same adapter. It could be the configuration but I haven't been able to fix it. |
i experienced similar miss-recognitions. How do i log/debug this. even if i had the plan for playing with own module and commands: How do i debug the words jaspers seems to 'understand'? i think, its more a software-problem than hardware... |
Jasper will only recognize commands that are in it's WORDS list. That's probably why you are seeing the log above and why it looks like it doesn't recognize the words correctly. However, if jasper isn't responding properly (eg not responding with beeps) it may be that you have to correct the audio hw for your setup. Jasper is currently hardcoded for a specific hardware address that may or may not apply to your setup. Chances are if you are not using a raspberry pi you will have to change this. Check out my fork that merges my work with that of @Exadrid |
Thanks for your useful reply fritz-fritz, I will try out what you said and tell if I was using a wrong hardware ID. |
just as another help to see whats jasper recognises. on my default console-screen (after reboot, not logged in), or also logged in as user "pi", how do i follow the printouts? |
@ozett terminate all running python scripts and execute "python ~/jasper/client/main.py", this will show you all the output. @fritz-fritz Do you know in which files I can find the hardcoded hardware ID's ? thanks |
@berni2288 For one the file i linked you to client/mic.py and also theres another one in client/main.py that is less important They look like this |
I'm having similar problems after testing with different USB adapters (desktop mic, webcam). I've tested recording (using arecord/aplay), and it is fairly clear and has minimal noise/static. I've also tested using a powered USB hub, to no effect. The only command I can get to work consistently is 'Jasper'; and occasionally 'time', however the 'time' phrase is often jumped into a mix of random words (eg. 'ITS TIME', 'TIME ON' or 'TIME TIME'). |
same problem here pocketsphinx_continuous has no results but tells "Warning: Could not find Capture element" -> any ideas? maybe arecord uses another device for recording than jasper or pocketsphinx? |
I had a similar problem. When you run /jasper/client/main.py does the terminal keep scrolling even when no speech is present? I found that I had to say "Jasper" two or three times for him to start listening. I eventually figured out that my microphone was set too high in alsamixer. To fix it: Open terminal > alsamixer > F4 (Capture) > Play around with the levels until the terminal stops scrolling and you see the text "No disturbance detected" > Test voice commands My level is set to 0. If I use arecord -D plughw: 0,0 test.wav and then aplay -D hw: 1,0 test.wav I can hear myself quite well. I should also note that I am using the suggested microphone. |
Hi, berni2288 Have you fixed this issue? I met this problem when I try Jasper on my rPI. The 'arecord' and 'aplay' implement so well. But the Jasper could only detect and recognize 'JASPER'. When I say 'What is the time', or 'How’s the weather?… What’s the weather like tomorrow?”'. Jasper could not work. Meanwhile, The log also exists on my board. ... BR//Denny |
And more, I found some more error today. However, the Jasper is still running all the time. JASPER: WHAT ONERROR:apscheduler.scheduler:Job "Notifier.gather (trigger: interval[0:00:30], next run at: 2014-07-02 06:33:09.591522)" raised an exception |
I also struggled to get Jasper to recognize my voice commands, so I abstracted out a speech-to-text module which defaults to the PocketSphinx implementation but optionally allows users to switch to the Google Speech API by specifying an API key in profile.yml (a lot of this was based off of @fritz-fritz 's fork). I've found that this implementation is much more reliable and makes for a completely different experience. I know one of the tenets of the jasper project is that the core should remain decoupled from third-party services. I'd be interested to hear from @shbhrsaha or @crm416 on whether they would be interested in a pull request that doesn't change the default behavior but that does allow users to plug in a third-party STT module by specifying configuration in their profile. |
I am using the EXACT same hardware that was used and/or suggested AND the Jasper disk image and cannot get the device to recognize any speech input. Like everyone here I can get it to record/playback just fine using the arecord/aplay programs. |
@astahlman and @fritz-fritz - this bug doesn't seem to be getting any attention from the authors @shbhrsaha and @crm416 - perhaps they have abandoned the project. @fritz-fritz seems to have a fork but it has a lot of dependencies - perhaps a little documentation on what has changed and how to set it up would be the way to go? I would be interested in getting something up - I have a number of RPi's I have hooked up to different things for home automation and want to tie all of them together - the https://github.com/johnwyles/PySpeak I wrote would be a pain to build out and I would rather start with something already tested and vetted |
@johnwyles - I haven't had the time to continue development on my fork for a while though it seems to work for me in an Ubuntu environment and others I believe have it working on some RPIs. I believe @astahlman has recently submitted a pull request based off my branch (admittedly I haven't reviewed it yet) to the main project that indeed has seen interest from @crm416 though it doesn't directly address all the issues that fall under this issue. The sad truth is that while some of this is the software limitations of using pocketsphinx vs google STT, the major problem IMO is the difficulty of abstracting hardware configurations (addressed in another branch) and playing with input levels etc... which is somewhat outside the scope of the project. While I prefer to use the google STT as the speech recognition is a lot more advanced, the original authors did not want to build that in as a dependency. It seems they may have decided to include it as an option after all if it the original STT engine is left as the default. Hopefully I'll have the time soon to get back to working on this. I have tried to document my changes as I went and add relevant information to the readme on my fork but it may be somewhat incomplete still. I do not have a RPI to test on so anyone wishing to help with RPI specific documentation would be a big help. |
I wanted to point out to others, who might be using projects with nodejs like I am, that there is a project that seems to be more complete with active development and less issues than this one. I have tested to work with RPi using the same hardware as this project: https://github.com/syl22-00/pocketsphinx.js |
The original authors are still merging in PRs, so this project is not dead after all. @fritz-fritz - The main problem with jasper is that a lot of code seems to have been written quick&dirty, e.g.:
Python is a perfect language for platform-independent development. I think jasper is a great project and can become even greater, If there's some more code cleanup and bugfixing (I've opened 2 pull requests for that matter). |
@Holzhaus I had the idea of a setup wizard for jasper with a GUI similar to raspi-config. So it would be easy to install, change paths, change sound devices, etc. So there no longer hardcoded paths and not everything must be writeable. And the instalation would be clean and automatic. |
@Marioheld Nice, although something similar exists ( |
@Holzhaus Yeah I know the populate.py but it´s just for the user profile. And because the easy installing guide for jasper not worked for I thought of an nice wizard. Sure it´s not easy to make all variable but I think some people here on Github maybe will help. That´s the sense of Github I think. By the way I also thinking about adding a feature in the wizard to change the STT and TTS Services so every user can easily chooce between the independence of pocketsphinx or the averages of other services e.g. Google STT. |
@Marioheld That's where the setting belongs: In the user profile. Different users might want to use different audio setups. Concerning STT/TTS Services: Support for different STT services has already been added in pull request #118. Support for different TTS engines is part of my pull request #124 (see Holzhaus@2eaf002) |
Closed due to no activity. |
Is there anyone who has got a good voice recognition with Jasper? If not, why not close the issue? I also got the bad recognition result. If this issue has not been solved, why not put it on the top. |
Hi,
I got a problem with the voice detection. I'm using a USB sound adapter (Daffodil US01) with a normal headset. When I record something with "arecord -r 48000 -d 600 -f S16_LE test.wav" and then play it again with aplay test.wav, the recorded sound is perfectly fine & clear without any background noises.
When I run "python main.py", it also seems to get triggered when I say "Jasper", however the recognition always tells me that I'm saying "BUT", "BUT OF", "WHAT" and things like that and I never ever hear the beep... I tried it a hundred times now. Is there something wrong in my setup ?
Output:
The text was updated successfully, but these errors were encountered: