Read2Me Mobile application supporting blind people to read books
제품 세부 정보
Short Description: Smart reading app for everyone: Hear your books come to life with personalized features, voice activation, and AI-powered text-to-speech.
Tags Keywords: reading app, visually impaired, accessibility, text-to-speech, audiobook, voice activation, ai-powered, personalization, voice-control
Description: Hear your books come to life with Read2me! Read2me is a smart reading app designed for everyone, especially those with visual impairments. Our app uses advanced text-to-speech technology and AI-powered features to create a personalized and accessible reading experience.
Key Features:
- Text-to-Speech: Turn any text into an audiobook with high-quality, natural-sounding voices.
- Voice Activation: Control the app hands-free with simple voice commands.
- Personalized Reading: Customize reading speed, voice, and other settings to suit your preferences.
- AI-Powered Features: Get book summaries, translations, and other helpful tools.
- Accessible Design: Built with accessibility in mind, ensuring a seamless experience for all users.
Document:
2.1 Requirements Gathering and Analysis
The "Assistive Reading Application for the Visually Impaired" project aims to develop a reading app specifically for visually impaired individuals, enabling them to access and enjoy book content easily and effectively. This application needs to meet requirements for functionality, usability, and accessibility for the visually impaired.
2.1.1 User Analysis
Target Users:
- Individuals who are fully or partially blind.
- Individuals who have difficulty reading traditional printed books.
User Needs:
- Read books in various text formats (ePub, PDF, etc.).
- Listen to audiobooks.
- Control the application using voice commands or gestures.
- Search for and discover books.
- Manage a personal book library.
2.1.2 Functional Requirements Analysis
Basic Functions:
- Support common book formats (ePub, PDF, etc.).
- Convert text to speech (TTS) with high quality and support for multiple languages.
- Allow adjustment of reading speed and voice volume.
- Search book content by keywords, title, or author.
- Manage a personal book library (add, delete, organize books).
Advanced Functions:
- Contextual reading (recognize character names, places, etc.).
- Allow users to interact with books using voice commands or gestures.
2.1.3 Non-Functional Requirements Analysis
Usability:
- Simple, easy-to-use interface, friendly for the visually impaired.
- Currently read words should be bolded and highlighted.
- Support multiple control methods (touch, voice, gestures).
- Clear and understandable audio feedback.
Accessibility:
- Meet WCAG standards for accessibility for people with disabilities.
- Easy to install and use for the visually impaired.
Performance:
- Stable and smooth operation on mobile devices.
- Battery efficient.
- Minimal bugs and issues during use.
Security:
- Protect users' personal information.
2.2 System Model
Hình 2.1 System Model
2.2 System Model
The system consists of three main components:
User Interface: The primary interaction point for users is on their smartphones, using voice commands. Input commands are sent to the server for processing.
Server: This is the core processing component of the system, utilizing the following technologies:
- Text to Speech (TTS): Converts book information from text into spoken words.
- Speech to Text (STT): Transforms user voice input into text format.
- Socket Server: Captures voice input from users.
- ChatGPT: Analyzes user input and converts it into structured data, enabling the server to take appropriate actions.
- API Server: Interacts with the database, allowing the server to perform CRUD (Create, Read, Update, Delete) operations.
Database: Stores relational data between system components.
2.3 Use Case Specification
2.3.1 Use Case Diagram Analysis
Hình 2.2: Use Case Diagram
2.3.2 Use Case Diagram for user
Hình 2.3: Usecase diagram for user
2.3.3 Use Case Descriptions
2.3.3.1 Gather Basic Information
Brief Description: When the application is opened for the first time, it will display a function to collect basic user information such as name, age, gender, reading preferences, and habits. This information helps the system recommend books that are suitable for the user.
Event Flow
Main Event Flow:
- This use case begins when the user opens the application for the first time.
- The system displays a SplashScreen and says "Welcome...".
- The app then transitions to the "User Information" screen. The app will read a list of questions such as:
- "Hello, what's your name?"
- "How old are you?"
- "Are you male or female?"
- "What genre of books do you like to read?"
- "When do you usually have free time?"
- After each question, the user's response is recorded. The application analyzes and returns the results of the questions.
- Once all questions are answered, the system processes the information and calls an API to suggest suitable books for the user.
- The app navigates to the home screen.
Alternative Event Flow:
- If the user has opened the application before, it will immediately redirect to the home screen.
Special Requirements:
- The questions should be read clearly, and the recording function should be sensitive enough to extract key information from the user's responses.
Preconditions:
- The user has not opened the application on their phone before.
Postconditions:
- Successful Case: If the system successfully extracts all necessary information from the responses, it stores the information locally on the user's phone (not in the database).
- Partial Information Case: If some information is missing, those fields are left blank.
2.3.3.1 Customization and Settings
Brief Description: Allows users to configure notification settings within the app or log out of their user account.
Event Flow
Main Event Flow:
- The user uses voice commands to navigate to the settings section, using commands like "Turn on notifications," "Turn off notifications," or "Log out."
- The system executes the corresponding action based on the user's command.
Alternative Event Flow:
- If the user enters an incorrect command in the settings section, the system will not execute the command. If incorrect commands are repeated multiple times, the app will return to the home screen.
Special Requirements:
- Clear voice command recognition and accurate extraction of key information from user input.
Preconditions: None
Postconditions: None
2.3.3.2 Listen to Books
Brief Description: The system responds to user requests to read books. Books are retrieved from the database and converted into spoken audio for the user.
Event Flow
Main Event Flow:
- The user gives a specific voice command to read a book.
- The system displays the book's content, highlighting the currently read sections.
- The user can give a voice command to stop reading, ending the event flow.
Alternative Event Flow:
- If the user requests a book that is not in the system's database, the system will respond that the book is not available and suggest choosing another book.
Special Requirements:
- Clear voice command recognition and accurate extraction of key information from user input.
Preconditions:
- The book information is already present in the system's database.
Postconditions: None
2.3.3.3 Voice Control
Brief Description: This feature allows users to control the application using voice commands for actions like adding books, reading books, adjusting volume, and reading speed.
Event Flow
Main Event Flow:
- During use, users interact with the system through voice commands corresponding to the system's functions.
- The system parses the main ideas from the user's speech to perform appropriate actions.
Alternative Event Flow: None
Special Requirements:
- Users can control the app via voice commands for available functions.
Preconditions:
- User information is already available in the system.
Postconditions: None
2.3.3.4 Create a Favorites List
Brief Description: Allows users to save their favorite books in a list.
Event Flow
Main Event Flow:
- The user gives a voice command from one of the following groups:
- Add a book to the favorites list: The user speaks the book's information.
- Remove a book from the favorites list: The user speaks the book's information.
- Retrieve books from the favorites list.
- The system executes the corresponding action.
Alternative Event Flow:
- If incorrect commands are given during interaction with the favorites list, the operation is canceled, and the list returns to its original state.
Special Requirements:
- Clear voice command recognition and accurate extraction of key information from user input.
Preconditions: None
Postconditions: None
2.3.3.5 Search for Book Information
Brief Description: Users can search for book information by book title, author, or genre.
Event Flow
Main Event Flow:
- The user uses voice commands to input information about the book, such as the author, title, or genre.
- The system searches the database and presents relevant book information to the user.
Alternative Event Flow:
- If the book is not found in the database, the system informs the user that the book information is not available.
Special Requirements:
- Clear voice command recognition and accurate extraction of key information from user input.
Preconditions: None
Postconditions: None
2
2.3.3.4 Book Recommendations
Brief Description: The system automatically suggests books to the user.
Event Flow
Main Event Flow:
- When the user starts using the system, it automatically recommends books based on the user's preferences or current popular books.
Alternative Event Flow: None
Special Requirements: None
Preconditions:
- This use case applies when the system has collected relevant user information.
Postconditions: None
2.4 User Interface Design
2.4.1 Provide Personal Information
When the app is first opened, the user provides their account information through a voice recording icon. (This section would typically include visual mockups or descriptions of the user interface screens, including the personal information input screen.)
Hình 2.4 Người dùng nói thông tin tên Hình 2.5 Người dùng nói thông tin tuổi
Hình 2.6 Người nói thông tin giới tính Hình 2.7 Người dùng nói thể loại sách ưa thích
Hình 2.8 Người dùng nói các thông tin về lịch trình
2.4.2 Customization Settings
When the user gives a voice command via the voice recording icon, the system navigates to the settings screen. The available options are displayed, and the user can continue to use voice commands via the recording icon to adjust system settings related to notifications and logging out of the application.
Hình 2.9 Hình ảnh các thông số cài đặt của hệ thống
2.4.3 Listen to Books
The user interacts with the voice recording command, using voice commands to specify the book they want to listen to. The system displays the book content chapter by chapter.
Hình 2.10 Giao diện đọc cuốn sách cụ thể
2.4.4 Voice Control During Reading
While listening to a book, users can perform actions such as adjusting the reading speed, intonation, volume, and navigating between chapters (Figure 2.10).
2.4.5 Search for Books and Create a Favorites List
- Search Screen: Showcasing how users can search for books using voice commands, filtering by title, author, or genre.
- Favorites List: Illustrating how users can view and manage their saved favorite books.
Hình 2.11 Tạo Playlist ưa thích
2.4.6 Recommended Reading Suggestions
When users open the application, the system automatically suggests suitable books for them.
Hình 2.12 Giao diện trang chủ gợi ý các cuốn sách phù hợp
2.5 Database
Hình 2.13 Schema database
2.5 Database Design
2.5.1 System Overview
Table 1: Roles of Tables in the Database
Table Name | Content |
---|---|
Author | Stores information about authors |
Category | Stores book genres/categories |
Books | Stores information about books |
BookChapter | Stores information about book chapters |
Playlist | Stores lists of favorite books |
Device | Stores information about devices used by users |
History | Stores reading history information |
Text-to-Speech: Turn any text into an audiobook with high-quality, natural-sounding voices.
Voice Activation: Control the app hands-free with simple voice commands.
Personalized Reading: Customize reading speed, voice, and other settings to suit your preferences.
AI-Powered Features: Get book summaries, translations, and other helpful tools.
Accessible Design: Built with accessibility in mind, ensuring a seamless experience for all users.
File Tree
-
📁 Read2Me Mobile application supporting blind people to read books
설치 지침
NodeJS: 18.17.0 or higher
Expo: 51
React native: 0.74.2
Python: 3.10
Source code app: (edit your ip on file src/util/config.js)
yarn install
yarn start
open your expo-go app then scan QR code
Source code python speech to command:
cd to server
pip install -r requirements.txt
py recognize.py
변경 및 적응 지침
Open the project in your preferred IDE.
Navigate to the modules directory where you can add or modify features.
Update the configuration files in the config directory to include new integrations or API keys.
Test your changes thoroughly to ensure compatibility and stability.
Refer to the detailed documentation included in the project for more specific instructions and examples.