Friday, May 3, 2013

Speech to Text Apis

Hi All,
Most of the people don’t prefer to write. Instead, they search for alternate options in order to save time. If nothing is feasible, then only they choose to write. This paved way for lot of technological advancements like Xerox machine, Scanner, Printer etc. Same way, when it comes to mobile device, people don’t prefer to type because of the smaller size keyboard and other constraints.

One of my friends recently bought a big screen smartphone. It is not comfortable to place the phone in pocket because of the size. I asked him why didn’t you buy a normal size phone. He replied that in this big screen itself he had difficulties in keying-in the keypad letters. Seems most of the time he touched two letters instead of one.

Same way, when you are driving or doing some other work, you will find it difficult to pick the phone and type. This is the place where speech to text conversion plays an important role. I used couple of speech to text APIs in my iOS apps. Here are some frameworks which might be useful for you too.

1. OpenEars
This is a open source framework available for iOS. We can directly download the framework and start developing the apps. It supports both speech to text and text to speech conversion. This works completely offline. The only downfall is since it works offline, you have to define a dictionary of words you want it to recognize.

This library is very much useful when we want to pick only certain words from speech. e.g.: I used this library for navigating views and filling datas in an application. When the user says “Go to Home”, the app will navigate to home page. Also I can fill the form data (refer screenshot of the app) as, “set current age 25″, “set gender male” so the app will fill the data properly.



Here I created the dictionary with the words I want the app to recognize. For directly converting all the speech to text, we have to build the dictionary containing all the words so that it will recognize the speech and convert it into text. Words database are already available in the net. We can directly use that or we can use our own set of words.
http://www.politepix.com/openears/

2. SpeechKit
This is another framework which will convert speech to text using a server. Implementing this framework is much easier than OpenEars. We don’t have to define dictionary of words or anything, just open the view already available with the framework. (it will give us the UI also). It will recognize the speech and send us the text in a callback function. The only drawback is that it needs internet connectivity.

 

http://dragonmobile.nuancemobiledeveloper.com/public/Help/DragonMobileSDKReference_iOS/SpeechKit_Guide/Basics.html
Also there are lot of other frameworks available for converting speech to text. We have to decide the one which fulfills our needs.

Bye Till Next,

- Jeyabalaji

Monday, April 15, 2013

Hybrid app pros and cons

Hi all,

I am an iOS native app developer but currently working on Hybrid mobile apps. I am relatively new to this tech and started learning about it.
There has been a lot of industry buzz going around about the advantages and disadvantages of the Hybrid Mobile App approach in relation to Mobile development. In this post, I define what a Hybrid Mobile App is, the pros and cons.

What is a Hybrid Mobile App?

Hybrid Apps run inside a native container and leverage the device’s browser engine to render the HTML and process the JavaScript locally. Meaning each platform such as iOS, Android, Windows Phone and Blackberry all have a unique code language that is used via SDKs to develop a native App. And along with this, each device has a built-in web browser that can be tapped into from inside any native App.
The native container wraps specific sections called web views which is what classifies the App a Hybrid.
Webtrends Hybrid Mobile App Development

Hybrid Mobile App Benefits

  • Faster time to market
  • HTML5 developers are typically easier to find and less expensive than native developers
  • A reduction in native coding usually results in more reusable code across platforms as the HTML5/JS/CSS code base can be utilized across platforms
  • Maintenance costs are usually lower
  • App approval submissions for updates can be dramatically minimized
The web-to-native abstraction layer enables access to device capabilities that are not accessible within mobile web applications, such as the accelerometer, camera and local storage.
Webtrends Hybrid Mobile App Development

Hybrid Mobile App Drawbacks

Facebook announced that they were going to move back from their Mobile Hybrid App to a full native App. Naturally this has stirred up speculation on whether the Hybrid approach  really is the best way to go and if HTML5 is ready. The feedback from the developer community was that Facebook wouldn’t have had to make this decision if they would have executed it properly and that many of the performance issues they were experiencing could have been avoided.
The top drawbacks to the Hybrid approach are:
  • Potential performance issues
  • HTML5 doesn’t work for everything
  • Apple tends to enforce tighter regulations on Hybrid Apps
  • Native frameworks can provide advanced functionality that cannot always be easily replicated on the HTML5/CSS/JS side
  • Decreased user experience for mobile web delivered content
  • Multi-platform wrapper requires native and mobile web technology know-how
  • App Store approval queues
These are some of the pros and cons what I read while I came across a lot of websites.

Personally what I felt was, if there was a competition between Native and Hybrid, the score would be (1, 0).

For example if a Birthday reminder app was developed in both Native and in Hybrid, as an end user I would choose the native app because of the good user experience, performance etc., instead of the Hybrid one. So Hybrid app kind of fails here. (fits for C2C where individual developers directly release their app in the market)

But at the same time, one of the clients asked us to create an app for iOS, Android, Windows and BB in minimum time. Getting resources with appropriate skill sets to develop across all these 4 different platforms in given time and associated costs are very high. So we recommended to go the Hybrid way instead of Native. Native app doesn’t seem a good fit here. (fits for B2B where an Enterprise develop app to another Enterprise)

As a conclusion, we have to look at the pros and cons of all the technologies before start developing the app. Please give your point of view regarding the pros and cons of Hybrid apps as comments. I am sure most of them reading this blog are smartphone users :)

Bye, till next
- Jeyabalaji.

References:
http://mobile.tutsplus.com/tutorials/mobile-web-apps/mobile-app-development-options-which-way-to-go/
http://www.slideshare.net/JohnMoy/a-dummies-guide-to-native-html5-and-hybrid-mobile-apps
http://blogs.webtrends.com/2012/10/hybrid-mobile-app-measurement/
http://www.investopedia.com/terms/c/ctoc.asp