Flutter Front End for "Bako: Voice-based Reading Assistance".
Bako Reading App is a mobile application designed to help users (particularly kids) improve their pronunciation and reading skills in the Bambara language. The application allows users to record themselves while reading a book from RobotsMali's Interactive children books and then receive feedback on their pronunciation. The application is based on an Automatic Speech Recognition Model trained by oza-dev.
- CRUD: Classical interface to Create, Update and Delete ReaderUsers
- Voice Recording: Users can start and stop recording their voice by pressing a microphone button. An application state indicates whether recording is in progress or if a recording is available for playback.
- Playback and Correction: After recording, the user can listen to their recording by pressing a playback button.
- ASR assisted reading evaluation: The application provides feedback on the user's reading, highlighting correctly pronounced words and offering a score at the end of each book/lesson.
- eGafew: Include RobotsMali's eGafew
A simple and clean interface with clear buttons for recording, playback, and sending recordings for the ASR model to transcribe. The application uses a drawer (side menu) to offer simple navigation to other parts of the application.
- Ensure you have Flutter installed. Follow the instructions at Flutter Installation to set it up on your machine.
- You'll need an Android or iOS device/emulator for running the app or a physical device for even better experience.
- BakoAPI Backend: Ensure that BakoAPI Django backend is running on a local server (This will not be needed once BakoAPI is deployed)
-
Clone the repository:
git clone https://github.com//mohpython/asr_app.git cd asr_app
-
Install dependencies:
Run the following command in the project directory to install dependencies:
flutter pub get
-
Run the application:
Connect your device or start an emulator and run:
flutter run
This project uses the following Flutter dependencies:
- cupertino_icons: ^1.0.6 for iOS style icons.
- shared_preferences: ^2.0.13 for storing simple data on the device.
- http: ^1.2.0 for making network requests.
- audioplayers: ^5.2.1 for audio playback.
- record: ^4.4.4 for audio recording functionality.
- collection: ^1.18.0 for collections utilities.
The key directories and files in the project are:
- lib/main.dart: Entry point of the application.
- lib/home.dart: Home screen UI and logic.
- lib/login.dart: User login functionality.
- lib/signup.dart: User signup functionality.
- lib/profile_page.dart: User profile management.
- lib/lesson_screen.dart: UI and logic for reading sessions.
- lib/test_model_api.dart: Integration with the ASR model API.
- lib/bako_api: Contains API interaction logic:
user.dart
: User-related API functions.asr_model.dart
: Function to infer the ASR model.lesson.dart
: Lesson-related API functions.
The application includes the following assets:
- assets/books/books.json: JSON file containing book data.
- assets/Thumbnails/: Directory containing image assets for thumbnails.
If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature
). - Make your changes and commit them (
git commit -m 'Add YourFeature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.