egovernments / egov-rnd

eGovernments Research and Development
Apache License 2.0
6 stars 16 forks source link

Voice-Based Form Filling Component for Flutter to Enhance Digital Access to Public Services #20

Open Ramkrishna-egov opened 5 months ago

Ramkrishna-egov commented 5 months ago

Description

In light of the digital transformation of public services, this project endeavours to create a UI component tailored for Flutter applications. The main objective is to address the challenge faced by many citizens in completing digital forms by developing a voice-based form-filling solution. This component, when integrated into a Flutter form, will automatically extract existing form elements and conversationally engage users to facilitate form completion. By offering a generic voice-based form-filling capability, the project aims to significantly enhance the user experience of Flutter-based apps. Given the increasing popularity of Flutter for building mobile applications used by citizens and frontline workers, such innovation has the potential to streamline interactions with digital services and improve accessibility for all users.

Goals

Design and develop a voice-based form-filling component specifically tailored for Flutter applications on DIGIT. Create a conversational interface that engages users to facilitate form completion using voice commands. The interface should allow the user to hear as well as see the voice prompts and recorded responses.

Expected Outcome

Acceptance Criteria

Voice-Based Form-Filling Component Development:

Conversational Interface:

Form Element Extraction and Dynamic Prompt Generation:

User Interface Design:

Backend Speech Processing Service:

Integration with NLP Service:

Thorough Testing and Debugging:

Frontend Optimization:

Out of Scope:

Implementation Details

Mockups / Wireframes

Product Name DIGIT

Project Name Voice-Based Form Filling Component for Flutter

Organization Name: eGovernments Foundation

Domain Public Services

Tech Skills Needed: Flutter, Java Spring Boot

Mentor(s) Ramkrishna Sahoo

Complexity High

Category Feature

Sub Category API, Frontend, Backend, LLM

EuclidStellar commented 5 months ago

Weekly Learnings & Updates

Week 1

  1. Research and Development on Digit Component: Explored the digit_components package to understand its functionality and how it can be leveraged for form fields. Identified the key components that could be integrated with voice commands.

  2. Library Exploration: Investigated libraries such as speech_to_text and flutter_tts for integrating voice commands. Evaluated the pros and cons of different libraries to determine the best fit for the project.

  3. UI Components for Voice Commands: Created basic UI components to handle voice commands and form submission. Developed initial prototypes to test the integration of voice commands with form fields.

Week 2

  1. Voice Integration on Dummy UI: Implemented basic voice integration on a dummy UI to test the feasibility. Ensured the app can listen for voice commands and update the UI accordingly.

  2. TalkBack Feature Exploration: Experimented with TalkBack as an alternative to text-to-speech for providing audio feedback to users. Compared the user experience and effectiveness between TalkBack and flutter_tts.

  3. Semantic Widget Integration: Integrated semantic widgets to improve accessibility and provide better screen reader support. Ensured that the app is accessible to users with visual impairments.

Week 3

  1. Flutter TTS and Speech-to-Text Integration: Successfully integrated flutter_tts and speech_to_text packages into the project. Implemented voice command functionality to fill form fields.

  2. DigitTextField from Digit Components: Incorporated DigitTextField from the digit_components package to manage form fields. Created UI components to handle voice commands and form submission.

Week 4

  1. Form Validation and Snack Bar Notifications: Implemented form validation to ensure user input meets required criteria. Provided user feedback through a snackbar notification upon successful form submission.

  2. Reactive Text Form Field: Used the Reactive Text Form field in code along with form control. Transitioned DigitTextField to DigitTextFormField.

  3. Digit Components with Voice Commands: Added more Digit Components enabled with voice commands such as DigitReactiveDropDown.

Week 5

  1. Flutter Material 3 Widget Implementation: Implemented voice command functionality on Flutter Material 3 widgets. Transitioned this functionality to DigitReactiveDropDown.

  2. Voice Command in Digit Component (DigitCheckBoxTile): Added voice command functionality to DigitCheckBoxTile (reactive checkbox). Used "agreed" as a keyword to mark the tick in the checkbox.

Week 6

  1. Tested Multiple Open Source Model Tested multiple open-source models for speech recognition and benchmarked them accordingly GitHub Repo of benchmark of the models : https://github.com/EuclidStellar/Model-Bechmarks-for-stt

  2. Documented the Complete Research on the Model Notion link of Documentation : https://www.notion.so/LLM-for-speech-recognisition-08eec4116c01495c94cd6ec612eafbac

c4gtthumbnail png

Ramkrishna-egov commented 4 months ago

Weekly Goals

Week 1

Week 2

Week 3

Week 4

Week 5

Week 6

EuclidStellar commented 4 months ago

Model Benchmarking research repo of Google Colab : https://github.com/EuclidStellar/Model-Bechmarks-for-stt