Mobile speech recognition in Kazakh - android

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

Related

Is there any way to connect my phone camera feed to ROS?

Currently, I have made an android application that allows me to access my video feed. However, I wish to know if there is a way to directly convert my phone camera feed into a ROS topic to which I could subscribe to directly. Any advice would be greatly appreciated.
Which language is your android application in? For mobile devices, the best ros library is probably the roslibjs javascript library. There are demo examples publishing video & imu msgs and demoing basic functionality on how to use it, chiefly in some sort of browser / webapp or js engine. To understand what it's doing, in order to connect to it, reading the core ROS object constructor / initializer shows you which transportOptions it supports, and other initialization features (like options.url for your target url). If you chiefly use another language, or you want to send it over the internet, whether as a local buffer or as a remote buffer, you can use the url to transmit your messages.
Otherwise, if you can use python or (more strongly encouraged) C++, those are robust. If it's java... there's some vague end of life support for kinetic (click kinetic!), but no guarentees. If you want to or are using ROS2, the official ROS2-java org/repo is the only thing available (for java &/or android). As it's still being developed, ecosystem java/android support is the depth of this project's implementation.

How to implement machine learning models on mobile phones?

I've built Machine Learning Models Random Forest and XGBOOST on Python or R
How can I implement that my model work in mobile phone IOS / Android? Not for training, just to predict the probability for users by properties and events.
You can expose your machine learning model as a REST API endpoint. Essentially, the client (mobile) will be making requests at a specific endpoint, which will then be triggering your model.
There quite a few examples available in the Web for you to read but for your convenience you may take a look at this one.
I think I'm qualified to answer this because it was yesterday that I viewed Google's "DevFestOnAir 2018". There was an "End to End Machine Learning" talk where the speaker mentioned what TensorFlow(TF) has to support AI in mobile devices.
Now, TF is available for JS , Java and many other languages, so this captures the entirety of the model that runs on your PC, uses other functionalities to make it run on lesser RAM and Processors. Do check this out. If I'm not wrong TF has a feature that would do the conversion for you.

Google speech to text api android

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

How to create a multi-platform localization solution?

I am .NET developer and currently working with WPF and ASP.NET MVC 4. The next project I should start will be a web application with good chance to later create clients for desktop/mobile/tablets. In other words, this application could be used from the web browser but also from native applications on Android, iOS, WinPhone8 and Windows Desktop (WPF). I have very limited experience with iOS development and none with Android dev.
One of the features I plan to have in this product is ability for users to select a language on which they want to use GUI, be it in web browser or any other client. Thus I need to create localization solution that would work with all platforms I plan to support. Since I am starting this project with first creating the web app in ASP.NET MVC I am not interested in using Microsoft's default support for localization via resources files (.resx) since that wouldn't be portable.
What are different options out there for creating multi-language support in apps deployed for various platforms? The first idea is to use XML files but I am also interested in exploring other possible solutions that might already exist out there. Any ideas on how to approach this problem are welcome.
First of all I'm not sure if your question should be addressed to the Android and iOs developers (using the iOs and Android tags) because if the client loads content provided by the server then the most common way to do this localization (i encountered very often) is to provide different URL's for different languages, probably with a parameter in the url, something like wwww.yourserver.com/en_us/otherstuffhere where en_us should be the country code and in this way the client can change the URL that will use for the following requests.
Of course it's rely hard to localize all the app using a server content, especially UI components such as button titles, placeholders etc. for these there are proper ways to localize them using iOS and Android OS features for localization.
P.S I have no idea how Windows phone OS works.
As far as I know, there is nothing really out there that would do what you want.
Most systems work well with JSON.
What you could do, is use any of the .resx to JSON solutions that are out there and just store all your localization strings in resx and then automatically convert them to JSON for other platforms.
Forget about one solution, just use whatever format the plattform offers and use a tool like Trados or Transifex to manually convert the different formats.
I'd recommend to use whatever format given platform has native, otherwise you will cause you lot of extra troubles.
You can then either use some tools to convert and merge these formats (translate-toolkit is great in this) or use some translation platform which will allow you to translate all of them in one interface. Transifex (service), Crowdin (service) or Weblate (service or instalable) should be able to do this.
Weblate can help you also with keeping them in sync, I don't think others have such feature (I'm author of Weblate).

on-board ocr library for android app

I am trying to create an OCR app for android. I want to be able to do it on the device itself rather than sending it to a server and then see the results. Is there a library available for it? I can consider buying as well.
Thanks.
While I know zilch about Android development, what I could offer you is to explore the option of porting 'tesseract'. Have used it a little, and few other FOSS OCR tools (some actually based on tesseract), and have found it to be best of the FOSS lot. AFAIR, it does only basic recognition, and you need to massage the document prior to feeding it to tesseract. Where commercial s/w surpasses FOSS tools, is the parapharnalia of preprocessing/massaging they are able to do, and even some postprocessing -- guessing tables and fitting text/unrecognized graphics back into positionally accurate locations on page, and converting into other document formats.
Tesseract can be tried on a regular Linux desktop on your favourite distro. IIRC, there is even a MS-Windows version as well, i.e. if you care.

Categories

Resources