An application belonging to the MAEL project
Copyright (c) 2022 Yonnel Bécognée
MAEL Scan is a mobile phone application 📱 (soon, a Raspberry Pi version ) that allows the student to scan QR codes created by their teacher with MAEL Gen and listen to their content 🔈.
Its interface is designed to be used by a child, from the age of 4 👶.
It only includes 3 large buttons by default.
MAEL Scan allows students who do not have any “talking device” at home to listen to the language being studied within an educational context designed by their teacher 💯. It therefore allows the teacher to boost their language teaching 📈.
Potentially, 55 languages can be implemented! 😲
🇫🇷 🇬🇧 🇪🇸 🇵🇹 🇧🇷 🇮🇹 🇩🇪 🇷🇺 🇯🇵 🇨🇳 🇰🇷 ...
- Scan 🔈 : Starts scanning the QR code and then vocalizes its content.
- Listen again ➰ : Allows listening again without re-scanning.
- Listen more slowly 🐌 : Allows listening again without re-scanning, but more slowly (does not work with mp3 files).
- “MP3” playback 🎵 : When scanning, if the link points to an mp3 file, the student will hear that file.
- Special modes : These are syllable libraries in mp3 format (integrated into MAEL Scan) because reading a single syllable is sometimes of poor quality with synthetic speech 😒. There are:
- the syllables of the Consigny bilingual alphabet book (in French and Spanish)
- the syllables of the “Borel-Maisonny” method (very commonly used syllables, associated with gestures intended to help children with dysorthography)
For these examples, install the French voice 🇫🇷.
⟶ The student does not know what the QR code contains: it is the teacher who decides the content (text, language, mode, mp3 link, etc.) when it is created. The student only has to scan it.
- Launch MAEL Scan
- Scan a QR code generated by MAEL Gen from a text.
Press this button:
| Example | Example | Example | |||
|---|---|---|---|---|---|
| Reading mode | ![]() |
Dictation mode | ![]() |
Spelling mode | ![]() |
-
🔈 Listen to the content of the QR code.
-
Listen again
- Listen again more slowly
⟶ The student will hear a synthetic voice 🗣️
✨ How to upload an .mp3 to Google Drive
- 🔈 Listen to the mp3 file.
- Listen again
- Manage file playback
⟶ The student will hear the .mp3 file. 🎵
(To help understand the code)
- MAEL Scan scans a QR code
- It decrypts the content of the QR code (algorithm already written in Kotlin 👍).
- It extracts the prefix and the suffix using regex.
- It deduces the language, the country, and the mode (or whether it is an mp3).
- It configures ⚙️ the phone’s text-to-speech module according to the language and country (or selects the mp3 playback module)
- It configures ⚙️ the mode (Reading / Hide / Dictate / Spell) and vocalizes 🗣️ the text as requested.
- If it is a special mode, it retrieves the corresponding audio (integrated into the app) 📤.
Anecdote : the MIT App Inventor version does not have the necessary functions to decrypt the content of the QR code. I had to write the algorithm in JavaScript to integrate it into a web page used by the Web module of MIT App Inventor.
What a detour!!! 😬
⟶ Another reason for migrating to Kotlin.
1- “Dictation” mode
-
The current dictation mode (vocalizing the text but not displaying it) will change name and be called “Hide mode”. 🔄
-
The new dictation mode will include:
- reading the text, but not displaying it,
- vocalization of punctuation, and
- display of the play–pause menu (with progress bar). ⏯️
2- “MP3” mode
- Creation of a MAEL Cloud ☁️ with fewer limitations than Google Drive. (hosted with the MAEL Phrase platform).
- Addition of an option (suffix) that will indicate to MAEL Scan that it must keep the file 📥 so it does not have to be re-downloaded if it is scanned again.
3- “Spell” mode
Preliminary explanation:
To spell a text, MAEL Scan contains a data structure holding the correspondences between letters and what should be spoken.
Examples:
| Letter | What will be pronounced |
|---|---|
| A | capital A |
| a | a |
| é | e acute accent |
| ç | c cedilla |
This database is very specific to each language.
In the MIT App Inventor version of MAEL Scan, this information is stored in a variable of type dictionary which takes the form of an immense building 🏢 made of small blocks, difficult to display (and therefore to manage).
It seems very complicated to create 55 dictionaries of this type 😵💫, which is one of the limiting factors of MIT App Inventor and therefore one of the reasons for the move to Kotlin MP .
1- Implementation of a SQLite database
It would therefore be necessary to use a SQLite database in which each table would contain the correspondences Letter | What will be pronounced.
2- Handling of ideographic writing systems 🉐
How should spelling be handled for languages such as Chinese 🇨🇳, Japanese 🇯🇵, or Korean 🇰🇷?
If a specialist in one of these languages is interested, he or she will be welcome! 👐
🛟 To get help regarding the use of MAEL or to participate in development 💻, write to me here:
A big thank you to everyone who will contribute to this project!
| Avatar | Name | GitHub | Role |
|---|---|---|---|
![]() |
Bécognée Yonnel | @Yobeco | Maintainer |
![]() |
Padawan | @Nail-yk | Documentation translation |
| ... | ... | ... | Developer |
| ... | ... | ... | Developer |
Only the Android version using MIT App Inventor is functional at the moment.
📥 To try MAEL Scan, Download the MAEL_Scan_V5_0.apk file













