Text To Speech in CommCare

CommCare 2.51 introduces Text-To-Speech(TTS) functionality. It uses android platform's TTS engine to speak text in different languages. Mobile users can enable this functionality from the CommCare settings menu. 
Once enabled, CommCare will add a button next to each question for TTS(it converts the question text to speech). App builder can also specify a different text for TTS by adding a tts field to the questions in the Add Other Content section in HQ form builder.  


Language Support

The TTS engine that comes with android platform supports a variety of languages, and different android devices may support different set of languages. You can find out the available TTS languages for your android device by going to android settings → text to speech output → language. It'll display a list of languages that's supported by the TTS engine. 

CommCare will try to use the current language of the CommCare app for the TTS output. But if that language isn't supported by the TTS engine, then CommCare will try to use the device's default language. But if the default language is also not supported by the TTS engine then CommCare will default to en_US(English) language. And if that also isn't supported, then it simply will display a toast message that Text-To-Speech feature won't work. 

There are situations, however, where the android TTS engine supports a specific language but lacks the language's voice data. In this case, CommCare will display a dialog asking user to download voice data for that particular language. It'll take user to the Android's setting app where they can download voice data for the language. Once the data is downloaded they can come back to CommCare and start using the TTS feature.