During CodeRage 9 I revisited adding voice support to Android apps. There are some updates from my previous skill sprint coverage on the topic and my original post on launching Google Glass apps via Voice.
You can download the Samples and Components on GitHub. It covers voice recognition, text to speech and launching apps on Google glass with your voice. The examples also cover Android Wear.
Voice Launching Google Glass Apps
- Add a Voice Trigger XML file:
- Choose a Standard Voice command http://embt.co/glass-voice-triggers
- Deploy to res\xml\ folder.
- Modify the Android Manifest Template:
- Add an Intent Filter
- <action android:name=”com.google.android.glass.action.VOICE_TRIGGER”/>
- Add an Intent Filter
- Add Meta Data for Filter
- <meta-data android:name=”com.google.android.glass.VoiceTrigger”
android:resource=”@xml/my_voice_trigger” />
- <meta-data android:name=”com.google.android.glass.VoiceTrigger”
Custom Glass Voice Trigger
- Change XML to from Command to Keyword.
- Use arbitrary text for voice trigger.
- Use the Development permission:
- <uses-permission
android:name=”com.google.android.glass.permission.DEVELOPMENT”/> - Added to android manifest template
- <uses-permission
- Not allowed for app store distribution
- Usable for in-house or ad-hoc use
Additional Prompts on Google Glass
- Collect additional Voice recognition input when app is launched.
- Add an Input Prompt to the Voice Trigger XML
- <?xml version=”1.0″ encoding=”UTF-8″?>
- <trigger command=”TAKE_A_NOTE”>
- <input prompt=”What shall I say?” />
- </trigger>
- Add an Input Prompt to the Voice Trigger XML
- In FormCreate get speech guesses from Intent Extras
- SharedActivity.getIntent.getExtras. getStringArrayList(TJRecognizerIntent.JavaClass.EXTRA_RESULTS);
Voice Recognition on Android
- Prompts user for voice input
- Returns up to 5 “guesses”
- Works offline too
- (only returns 1 guess)
- Reusable component for download.
- Requires RECORD_AUDIO & INTERNET permissions.
- Sends audio to Google’s servers.
- Uses context to select words.
- Pronounce punctuation (period, comma, etc.)
- Works on Android phones & tablets
- Works on Google Glass
- Works on Android Wear
- Doesn’t work on iOS (no exposed API)
- Could use a 3rd party recognition service
Using TSpeechRecognition Component
- Properties
- Language: en-US
- Prompt: Speak now
- AlwaysGuesses: True
- Methods
- Listen
- ListenFor
- Events
- OnRecognition
- OnRecognitionEx
- OnCommand
Text-To-Speech on Android
- Converts Text to spoken word.
- Reusable component based on Jeff Overcash’s translation.
- Code shows example of handling Java Listener events.
- Works on Android phones & tablets
- Works on Google Glass
- Doesn’t work on Android Wear (no speaker)
- iOS Support is possible . . . . (needs implementation)
Using TAndroidTTS Component (component name may change)
- Just one procedure: Speak
A Note About iOS
- iOS does not expose voice recognition API
- (Need to use 3rd party)
- iOS 7 supports Text to Speech API
- AVSpeechSynthesizer
- Just haven’t implemented in component yet
Google Glass Voice Trigger Sample
- C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\
- \Object Pascal\Mobile Samples\Google Glass
- \CPP\Mobile Samples\Google Glass
- docwiki.embarcadero.com/CodeExamples/XE7/en/FMX.Mobile.GoogleGlass_Sample_(Delphi)
The replay video will be available here later.
Download the XE7 Trial today and check out the special offers.
3 replies on “Voice Enable Your Android Apps”
[…] During CodeRage 9 I revisited adding voice support to Android apps. There are some updates from my previous skill sprint coverage on the topic and my original post on launching Google Glass apps via Voice. […]
[…] Head over and check out the full blog post with some additional information for setting up your Delp… […]
[…] Voice Enable Your Android Apps; […]