-
Notifications
You must be signed in to change notification settings - Fork 2
Requirements and specification
Version Date Message 1.0 2023-10-08 initial 1.1 2023-10-18 edit use cases 1.2 2023-11-05 edit user stories 1.3 2023-11-12 supplement user stories & user acceptance criteria, update customers 1.4 2023-11-19 add data processing info 1.5 2023-11-30 add information on initialization of weight table 1.6 2023-12-03 update modified wireframe
Our main goal is to design a service that implements AAC(Augmentative and Alternative Communication), so that people with speech impairments can get assistance and communicate with others more easily. Our service, SpeechBuddy, has two main features. First, users can communicate with others via various symbols provided by our service. They can also add their own symbols with their own pictures. With this wide range of symbols, users can simply select symbols to generate long utterances in which they can express their own thoughts and feelings. SpeechBuddy also provides a 'favorite' option for symbols so that users can easily search for their most frequently used ones. Most importantly, SpeechBuddy also provides next symbol prediction based on personalized preference which will free the users from the cumbersome task of scrolling through the entire list of symbols to find one. Second, users can also type manually to use the text-to-speech service that SpeechBuddy provides. For users with speech impairments but with the perfectly fine ability to type on their mobile devices, this is the better option to go.
People with language disorders/impairments
- People who are physically unable to produce sounds (e.g. those who had cordectomy, who has severe dysarthria...)
- People who needs more direct and straightforward communication methods due to cognitive disabilities (e.g. those with autism spectrum disorders, aphasia...)
AAC Background Research includes the following contents
- Definition of AAC
- Types of language disorders and target users of AAC apps
- Preceding research on words that are used in AAC
- Target users, specific features, design, app store reviews, etc. of existing AAC apps
The main datasets used are as follows:
(1) Approximately 10,000 graphic symbols presented in the study "Development of Korean Ewha-AAC Symbols: Validity of Vocabulary and Graphic Symbols (Park et al., 2016)." These symbols are available here.
(2) A vocabulary list for those who learn Korean, presented by the National Institute of Korean Language. This list is available here.
(3) AAC core vocabulary of 397 words presented in the study "A Literature Review of AAC Core Vocabulary Lists of Children and Adults (Shin and Park, 2020)."
Since symbols in AAC apps are supposed to be validated for use by professionals in speech therapy and special education, we couldn't create symbols ourselves. Therefore, we decided to select symbols from (1) dataset above. Out of the 10,000 symbols, we could use only 500 for non-commercial purposes. To extract 500 symbols to use, we utilized data from (2) and (3) above in the following process:
The data from (2) is categorized into grades A, B, C based on indicators like word frequency.
We first extracted words from grade A in (2) that have corresponding symbols in (1) and then removed dependent nouns, auxiliary verbs, and words that could not be analyzed as a specific part of speech. Dependent nouns and auxiliary verbs were excluded as they convey relatively little meaning compared to other parts of speech and must be used in combination with other words.
When extracting the intersection of words from (2) and those presented in (1), we used string matching. Accordingly, a problem arose because (1) contained verbs and adjectives in conjugated forms (e.g., 먹어요), while (2) contained them in their base forms (e.g., 먹다), making string matching difficult and resulting in too few verbs and adjectives in the extracted words.
To address this, we additionally used data from (3), which included verbs and adjectives in their base forms. We selected words from (3) that correspond to grade A in (2), removed dependent nouns, auxiliary verbs, and words that could not be analyzed as a specific part of speech, and then used them to supplement verbs and adjectives. Since all of these verbs and adjectives are AAC core words, symbols for their conjugated forms can be found in (1).
After this preprocessing, 464 words were obtained. Basic sentences such as '가져와주세요' (please bring) and '감사합니다' (thank you) were added. The project team reviewed these expressions multiple times, handling homonyms and adding necessary items through manual verification. After this process, the final list of 500 symbols was completed.
From the initial 500 words that are stored inside the device, default weight table would be provided to the user for better usability.
Weight table is based on Korean Word2Vec model. (total of 200 dimensions)
- Reduced the w2v model to 500 words that are used in the app.
- Extracted vector space from the model.
- Added missing words that are not present in the model. (150 words)
- Converted the vector space into weight table using cosine similarity. (changed dimension from 500x200 -> 500x500)
- Adjust the individual values to integer range by multiplying 100.
There are already multiple mobile apps that feature AAC, but apps that support Korean are rare. Plus, although some AAC apps provide next word prediction, they don't utilize personal preference to feed into the prediction algorithm. SpeechBuddy supports Korean and features personalized next word prediction by performing dynamic weight updates that are maintained per user.
- Communicate using symbols
| Goal | Patron wishes to communicate with others with symbols. |
| Primary Actor | Patron |
| Scope | The service to choose symbols |
| Level | User |
| Precondition | Patron is at the screen choosing whether to sign up or to use guest mode. |
| Success End | Patron expresses his/her thoughts properly. |
| Failure End | Patron cannot express his/her thoughts properly. |
| Trigger | Patron logs into app(guest mode is okay too). |
| Main Success Scenario | Patron registers for the account with email address, nickname, and password. System verifies and creates the account. Patron accesses the main screen. Patron selects symbol list page. Patron selects a sequence of symbols and show it to others. |
| Extensions(Error Scenarios) | Password is incorrect. -> Patron is warned and tries again. Email address is invalid. -> Patron is warned and tries again. |
| Variations(Alternative Scenarios) |
- Communicate using TTS
| Goal | Patron wishes to communicate with other people using the service that reads aloud the written text. |
| Primary Actor | Patron |
| Scope | TTS service |
| Level | User |
| Precondition | Patron already has an account. |
| Success End | TTS reads aloud the user-written-text properly. |
| Failure End | TTS cannot read the user-written-text properly. |
| Trigger | Patron logs into app (guest mode is okay too). |
| Main Success Scenario | Patron launches the app. App auto login to main page. Patron clicks TTS menu at the bottom menu bar. Patron types in sentence that he/she wants to express. Patron presses speak button. TTS reads aloud the text successfully. |
| Extensions(Error Scenarios) | |
| Variations(Alternative Scenarios) |
- Change profile
| Goal | Patron wishes to change his/her profile. |
| Primary Actor | Patron |
| Scope | Setting Page |
| Level | User |
| Precondition | Patron already has an account. |
| Success End | The personal information of the patron is updated to the server. |
| Failure End | Patron fails to update the personal information. |
| Trigger | Patron goes to reset password page, and enters the email address and verification number. |
| Main Success Scenario | Patron launches the app. App auto login to main page. Patron clicks Settings menu at the bottom menu bar. Patron enters the email address and password. System verifies and allows him/her to modify personal information. Patron changes personal information. Email verification is carried out if needed. The modified information is uploaded to the server. |
| Extensions(Error Scenarios) | Previous password is wrong. -> Patron is warned and tries again. Email address is invalid. -> Patron is warned and tries again. The format of new password is invalid. -> Patron is warned and tries again. |
| Variations(Alternative Scenarios) |
- Backup personal settings
| Goal | Patron wishes to backup the personal setting to the server. |
| Primary Actor | Patron |
| Scope | Setting Page |
| Level | User |
| Precondition | Patron is at the setting page. |
| Success End | The personal information of the patron is updated to the server. |
| Failure End | Patron fails to update the personal information. |
| Trigger | Patron goes to backup page. |
| Main Success Scenario | Patron successfully performs backup to the server by clicking the backup now button. |
| Extensions(Error Scenarios) | No internet connection -> Patron is warned about the internet connection. Personal settings are not uploaded to the server -> Patron is warned that an error occurred and try again. |
| Variations(Alternative Scenarios) |
-
As a user who relies on symbol selection for communication and faces challenges in promptly finding the next symbol, I can benefit from next-symbol recommendation algorithm based on my usage history, so that I can enjoy a faster and more efficient communication.
Scenario : Users should experience personalized next-symbol recommendations(predictions) to enhance communication efficiency
Given that a user has frequently selected "가져와주세요" after choosing "가방" to express "가방 가져와주세요"
When he/she selects "가방" to convey "가방 가져와주세요" again
Then he/she should observe "가져와주세요" positioned on top of the symbol list, followed by subsequent symbols that are arranged based on the recommendation algorithm. -
As a user who wants to look for a specific symbol to choose subsequently, I can search for a particular symbol or category in mind by typing, so that I can find the optimum symbol for me.
Scenario : Users should be able to search and find a specific symbol to express their thoughts
Given a situation where a user tries to find "더워요" symbol
When the user types "더" to search for the "더워요" symbol
Then he/she must be able to easily find the symbol in the search result. -
As a user who has frequently-used set of symbols, I can add those symbols to my favorites list, so that I can find them easily later.
Scenario : Symbols that are frequently used should be more easily accessible
Given a context where a user consistently utilizes a small set of symbols
When the user touches the heart icon on the upper right of the symbol, the symbol is added to his/her favorite list
Then the user should be able to conveniently find these preferred symbols by selecting the "show favorite symbols only" menu. -
As a user who is physically unable to produce sounds, I can write down my thoughts and make them to be read aloud using TTS feature, so that I can convey my ideas to others, using sound.
Scenario : Those with speech impairment should be able to express themselves out loud
Given that a person who has difficulty in uttering needs to attract other's attention to inform that he/she needs help
When he/she writes “도와주세요” in TTS screen of our app
Then the app should read aloud the phrase on behalf of him/her. -
As a user who wants to express creative thoughts, I can add new symbols to the symbol list by uploading my own photos and have them converted into new symbols, so that I can freely express my own ideas using new symbols.
Scenario : Users should have the ability to personalize symbol lists based on their preferences
Given a context where the user tries to find a symbol in the list to express his/her thoughts but can’t find one
When the user navigates to the ‘symbol creation’ screen, uploads his/her own photo from the gallery, provides name and category for the photo, and have them converted into a new symbol to be added into the symbol list,
Then the new symbol should be displayed in the symbol list of ‘symbol selection’ screen. -
As a user who uses SpeechBuddy app across multiple devices, I can automatically synchronize my data and personalized settings across all logged-in devices, so that I can ensure a consistent and up-to-date experience on various devices.
Scenario : Personal data and settings should be automatically backed-up across devices, for users to avoid the hassle of manually updating their data.
Given a situation where the user is logged-in to several different devices when the app is running
When automatic backup is enabled, the app will automatically send user data to the server at specified time intervals
Then the server should store the data, allowing users to access it across various devices and retrieve the uploaded information -
As a user who has difficulty creating my own account, I can proceed to use the application in guest mode, so that I can use its key features such as symbol selection & TTS communication without login.
Scenario : Even those who encounter challenges in establishing their accounts should have access to our app's key features.
Given a user experiencing challenges in understanding the registration process or encountering difficulty in proceeding with account creation
When the user opts to utilize the app in guest mode by simply touching the 'guest mode' button
Then the user should be able to easily navigate to the 'symbol selection' or 'TTS' screen, gaining immediate access to key features.
- Readability : Symbols and their corresponding texts should be recognized easily.
- Security: Users cannot access and/or update other users' data.
- Accessibility: All buttons should be big and easy to find. All text should be not too small.