I'm currently working on an Android application using SpeechRecognizer provided by Google. However, this recognizer only uses the default language of the device, and not languages provided with RecognizerIntent.ADD_EXTRA_LANGUAGES :
speechRecognizerIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.FRENCH);
speechRecognizerIntent.putExtra("android.speech.extra.EXTRA_ADDITIONAL_LANGUAGES",new String[]{"fr});
This code for example won't use French for recognition but will use english instead because it is the device's language. But I need it to work in French.
I know this issue has been already asked multiple times, but it was a pretty long time ago, and I would like to know if anyone know if this bug has been fixed since, or how to fix it? And if it has not been fixed yet, if anyone has any workaround/API/Service to create a voice language recognition application on Android?
Thank you for your help!
Huawei ML Kit may help with your issue.
Huawei provided Text to speech (TTS) can convert text information into audio output in real time.Rich timbres, and volume and speed options are supported to produce more natural sounds and supports French.
For Detail,pls kindly refer Docs.
You can also use the sample code to quickly understand the Android APIs provided by HUAWEI ML Kit and how to use the APIs. See ML Kit Android Sample Code.
Related
Android google speech to text SDK, the voice recording is controlled by SDK .
I need to make it manual button for start and stop voice recording for speech to text. for eg: while click a button for start the voice recognition , its continue to record the audio until click the stop button. but in android SDK , its automatically stop the recording and pass the recorded audio for processing.
I created an updated version of the Android sample application with Start and Stop, and posted it here:
https://github.com/Avilaaiops/SpeechRecognitionClient
It updates Gradle to 4.0.1, Kotlin to 1.3.72, and the Speech SDK to 1.24.0
This should help people looking for an up to date sample that isn't on the alpha SDK anymore.
As far as i know this is how its attended to work. There is no continuous speech recognition. To implement something like you requested, you need to use third party libraries like this or this one.
There is no official documentation on how to transcribe Audio from Streaming Input in Android yet but Java, C#, Go, Python and Node.JS. However there is a sample Android app for the API. You can use it as a starting point and convert the Java code into Android Native code.
Note: Even though Android uses Java but it is a different version which is designed to fit the Android architecture.
Using the approach I mentioned above requires extra effort, research skill as well as your Java and Android Fundamental Programming Skill. #thisisthehardway
The easier way will be applying external libraries like Droid Speech (As mentioned by #kAliert).
From the documentation of Droid Speech:
Droid Speech aims to close this gap and provide unparalleled
optimisation of continuous speech recognition without any of the above
said issues. It is developed keeping in mind all the loopholes which
needs to be blocked to have the speech recognition run seamlessly in
an android device.
This would be relative easy but it is made by third party as you have no full control on it.
Cheers!
For this i searched a lot, i didnt find any solution to implement Microsoft speech to text api. Finally i got the solution it worked for me , and hope i will work for you or it can help somebody who is searching. I am just mentioning the git repository link, Pickup the MainActivity.java,gradle(aap and project level) , layout xml and put in your project. Execute and enjoy the solution.
Git repository link is: MircoSoftSpeechToText
I want to create a little mobile application for android based on speech recognition. Problem is that there is no such API, which have kazakh dictionary (I tried to find). So, I want to use API which can create own dictionary. Is there any API?
I am not familiar with machine learning, but I understand that I have to teach the system.
A speech recognition system requires a little bit more than a dictionary.
Sphinx is an open source system that you may want to take a look into, at least to understand how things work. Pocketsphinx is their version for mobile devices.
From their FAQ:
Q: How to add support for a new language
The process of building a new language model consists of the following steps:
Data collection (you can collect audiobooks with text transcriptoin
from project like librivox, transcribed podcasts, or setup web data
collection. You can also try to contribute to Voxforge. You can start
very quickly with just few hours of transcribed data.
Data cleanup
Model training
Testing
https://cmusphinx.github.io/wiki/faq/#q-how-to-add-support-for-a-new-language
You can download Kazakh model (including Kazakh dictionary) in CMUSphinx downloads
Since Android 4.0 Google has provided some face detection APIs.
In Jelly Bean we can see a "Liveness check" feature in FaceUnlock.
I have searched a lot in Google and I haven't found a way to implement this. I mean, capture user's blink of an eye.
I have seen some OpenCV threads but since Android already supplies this, I guess there's no need to use any other API.
So, can anyone help me on how to create a "Liveness check" feature using just plain Android APIs?
Any help is welcome!
as google said new android "jelly bean" will contain voice recognition engine able to work offline. As new android source code have been opened I tried to look at and find source for voice recognition engine but without success.
So my question: is voice recognition engine source code a part of android 4.1.1 source code? Or it's something like separate app?
Thanks in advance and sorry for my English.
It is actually a downloadable package in settings. No apps and such, just a simple engine that the os falls back on if there is no internet.
So no, it is not part of the source code nor is it a separate app.
Hope my understanding of it is clear and has helped you.
In Android 4.1 source you can see the speech engine source in srec_jni folder (C++ code) but there is some problem the header files are not located where it should be
The voice recognition software definitely lies inside the Jellybean OS since the app recognizes the voice commands such as "call" it also recognized the names in the contact, hence the source code must be inside the OS.
P.S: Try switching off your wifi and Mobile data and voice commanding "call" and it will work.
I was recently developing an android application where I wanted to display kannada text in the TextView. I went through this link, now the problem is the glyphs(character sequence) are not rendered/interpreted properly.
I also found this discussion pretty usefull .
Now my question is - "Is it possible to integrate a layout/shaping engine (responsible for rendering the text properly) in an application.
Any help in this regard would be helpful.
Thanks !!
Use Bitmap fonts and your own rendering engine till Android supports
What version of Android are you targeting? Pre-2.3 Android has very poor support for any Indian language whatsoever. 2.3 introduced support for Hindi, but Dravidian languages are still missing. Based on this fact is my hunch that Android 2.3 and later probably might render Kannada text better.
Also, emulators have known issues with text rendering in some languages. I suggest testing on a real device.