Text to Speech App

Skills required

Software Development
Medical Devices

The Why

When a family member began to lose their voice due to motor neuron disease we found a lack of low cost and easy to use Text to Speech apps. The few that did exist were expensive or only on one platform and weren't tailored to towards those who were struggling with communication. With this in mind, I set out to develop my own app to tackle these challenges.

The How

The first decision I had to make was the language and framework I would use to develop the app. I came to the decision to use Flutter, Google’s app development framework. The main reason behind this is that it allows for the creation of multi-platform apps using a single code base, therefore, removing the need to develop individual apps for both Android and IOS. Although this meant learning a new programming language, Dart, I felt the advantages of flutter would allow for much quicker development and deployment of the app.

My initial goal was to get the basic text to speech functionality working, for this I was able to utilise the IOS and Android Text to Speech APIs. The first version of the app was basic but allowed the user to convert the text inputted into the app into audible speech. Further to this, I then wanted to include the ability to input handwritten text using a stylus or a users finger for a natural and quick way to input what they would like to say. From there I implemented the user history beneath the text input to allow the user to easily repeat recently used phrases or words. Currently in development is a favourites tab, this will allow the user to set their favourite phrases or words for quick and easy communication.

The Outcome

Overall I am happy with how the development of this app has turned out so far, it has captured the key features I wanted to include such as the text to speech functionality and the ability to input text using your handwriting. Unfortunately, I haven’t been able to spend as much time on it as I would have liked and have a long list of features I would still like to add including the ability for the user to login to access their favourites and history across multiple devices, a tab which gives the user common phrases based on their situation i.e. ordering food at a restaurant and more.

Once I have the app in a good position, my goal is to release it as an open-source project and build a community around it to keep it up to date and feature full!