Mobile App: I choose to use MIT App Inventor, due to the ease of use, and because it’s easily customizable. Android phones have also the particularity to be easier to program than other models and have some functionalities that can be well exploited from a single app.
The app visual has the following:
Speaking section:
- Textbox1: Where the user will type with the Talking Glove
- Action Buttons: “talk” to reproduce what has been typed, “delete” to delete text and “last text” to repeat the last text typed
- Preset buttons: Divided in 6 categories, they store common phrases, so they are not typed with the glove.
- Listen: Button to be pressed when the user will “hear” what other people are saying. It starts the Google’s voice functionality found in all Android phones.
- Textbox2: non-editable field which will display the text taken from the voice functionality.
- Language: Button to select voice output and buttons text language.
Listening section:
The app has the following core non-visible components:
Text to speech: Used to convert what is typed with the glove to sounds
Speech Recognizer: To convert voice to text
Other components are used to give useful functionalities:
Clock: used to calculate the time of the day so when the user touches the greeting button, it will create the phrase with the right moment and reproduce it
Notifier and TinyDB: Used to store user name and help on the selection of output language
MIT App Inventor apps are made in blocks, which is like doing a code puzzle instead of typing it. I divided the blocks in 3 parts:
Initialization: Blocks that will start the following functions:
- User name entering: Needed to store the desired user name, this will be used for the greeting button, by concatenating the pieces of code with text and day time calculation.
Buttons: Pieces of code which will activate the non-visible components functions.
- Language: Blocks that will process the language change. Since is not a common functionality, I made use of lists in which the pieces of text are stored.
Language set blocks, which will operate the change by calling the items in the lists. In order to be organized, I divided the function in “language”, “listName” and “String”.
- Language: a number which identifies the language to be chosen. I assigned 1 for Spanish and 2 for English
- ListName: Global variable containing a list of strings. There should be variables for language, buttons, and titles.
- String: corresponding number of the string to be used. The strings are stored in a list inside a list. The main list defines the listname and the inside lists are created with independent pieces of text according to the languages available. In this case, for example, I have a global list called “buttons”. This list contains 2 other lists, one for English and other for Spanish, and inside each list, there are 10 words which will determine the text on the app buttons.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.