i am building an application "Voice Calculator" which takes input as a voice and display result based on the input.
i dont want to use a google servers for voice recognization, is there any way through i can achive my goal.
i want to take input as " two plus three multiply four hundred twenty two minus one hundred" etc. so i would like to record and compare every words,
that can be converted in to text and which can be used to perform calculation.
can any one guide me , how to achive this? i am done with designing calculator with its functionality,
i hope i am able to explain my doubt, looking for help.. thank u..
I have used Google API for voice recognition, although I wanted an off-line version, I need to rely on voice recognition.
Have a look at Voice Recognization for android example.
Granted that not many device support it yet, but Jelly Bean will allow you to download Google's voice controls to the device for offline use.
Related
I would really appreciate little help with voice control for android. I am making voice-controlled chess, but voice recognition is identifying words that I don't want.
Example: "King to C7" > "Pink 2 See 7"
So, is there a way how to filter only words that I want to use? Make something like whitelist? Thanks for every response.
Unfortunately, this isn't possible because of the way how speech to text works. Limiting the speech recognition only to some small whitelist would require retraining of the neural network (and that isn't something that an individual can do).
I want to develop an android app.
One feature of the app is recognize 2 people's voice.
It will be kike this - when the app will open, 2 people will talk in front of it.
App will detect 2 persons speaking and will calculate how much % (let 2 persons are A and B) person A spoke and same for person B.
So, say, after 1 minute the app will tell A talks 80% and B talks 20%.
So, what I need is how to differentiate 2 people's voice.
I have tried SpeechRecognizer and android.speech.tts . But I can't make it working.
Is it possible in android to differentiate 2 people's voice?
Thanks in advance for helping.
SpeechRecognizer or TTS will not help you as they have designed to recognize speech. You have to use DSP technology, in order to recognize the speaker. Due to the complexity, i don't think you can achieve this within the device itself. You can save your audio (using something like AudioRecord in Android) and then send it to a server. in the server side you can run a speaker recognition program. ALIZE is a quite popular open source tool for this.
I want to add a voice interface to my Android app. Two requirements:
I only need to recognize from a small dictionary of words at any time - basically any clickable element on screen, and most of the clickable elements already have text on them, so it would literally be "say what you see".
Continuous voice recognition while the app is visible, although I could live with having to say "Ok app" before the speech to be acted upon.
What is the optimum way to implement this?
Thanks
NickB
If you want something offline, I'd look at PocketSphinx (https://cmusphinx.github.io/wiki/tutorialandroid/). I used it for offline wake word recognition. It seems to err on the side of being more accepting of what you say, rather than less.
For continuous listening, you might look at IBM's Watson's Speech to Text software (https://github.com/watson-developer-cloud/android-sdk), which is a cloud bases Speech to Text.
I was able to combine the two, using PocketSphinx to detect wake words and then using Watson to get good speech to text results.
I want to make an android application that allow user change the voice during phone call. For example: You are a man, you can change the voice to a woman or robot when talking over phone. It is like a funny prank.
I work around android's API and google for some days but still have no idea. Some one told is impossible but I see some app on google play can do:
https://play.google.com/store/apps/details?id=com.gridmob.android.funnycall
So I think there are some ways to do that.
I think about recording and play back by using AudioTracker but I have 2more problem:
1. I cannot mute the voice from phone call, so the phone only play my sound after processing
2. record and process will make a long delay (slow-realtime)
Can any one share some solution for this?
The app you linked isn't changing voices on the phone: it uses SIP (or similar) to place a call through the authors' servers and the voice changing happens there. That's why you only get a small number of free minutes of use before you have to pay them.
Yes it uses a sip server to do this process. The reason you cannot actually create an app that does this on the phone is because of two things. The first thing being, sound processing for the phone is locked. You can't unlock this because its strictly engineered through hardware not software. A pc can do this because it uses a standard sound card in which software can modify its frequencies. The second thing is phone manufactures are required to design their phones in a standard format. There are laws that force these companies to make it impossible to do any voice morphing. It is against the law to impersonate someone you are not, over any telephone network.
Hard way
You get the input voice, you use voice recognition to detect the words, then you use speech-to-text with your desired voice as output.
Less hard way
Sound processing: Changing frequencies, amplitude etc.
I don't have much experience with Android, but was asked by a hearing-impaired friend if there is a way to essentially "stream" voice to text on a mobile device. I've used and looked into the android built in api, but it seems that only sends the speech off for processing after the speech input is completed. I'm looking for something that works contiguously (similar to how Dragon works with microsoft word).
Perhaps there is already an app that does this. If not, is there a way to implement this with the current Android OS/API?
Any suggestions appreciated.
As you've mentioned, the speech-to-text recognition is sent to Google for processing. This can take enormous computing power, which current devices simply can't handle (yet). Because everything is processed server-side, you won't be able to do immediate speech recognition in real time directly on the phone.
It's possible that somebody has created a 3rd-party library to do this, but I'm not aware of any. Even so, it would probably have some significant limitations or reduced accuracy.
You can use this Extra for the Recognizer Intent:
String EXTRA_PARTIAL_RESULTS Optional boolean to indicate whether partial results should be returned by the recognizer as the user speaks (default is false).
http://developer.android.com/reference/android/speech/RecognizerIntent.html#EXTRA_PARTIAL_RESULTS