Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.0.0.1 add NARRATE and EDIT modes #40

Open
chirag03k opened this issue May 19, 2021 · 1 comment · May be fixed by #48
Open

3.0.0.1 add NARRATE and EDIT modes #40

chirag03k opened this issue May 19, 2021 · 1 comment · May be fixed by #48
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@chirag03k
Copy link
Collaborator

Copied from RoboTutor_2019

Enable story and prompt narration inside RoboTutor by adding NARRATE and EDIT modes to replicate the functionality of Project LISTEN's Reading Tutor.

NARRATE:

Start at first non-narrated sentence of story.

Synthesize pronunciations of any new words in next sentence. Add them to the pronunciation lexicon. (This should be part of normal Listener functionality but check to make sure it is.)

Display sentence.

Listen to user read sentence, with normal graphical feedback. Record it.

Check if ASR input contains sentence as a substring:

a. If yes, play back that portion, store audio and .seg with the sentence as its filename, and advance to next sentence.
b. If not, reinitialize position in sentence and prompt user to reread.

UI/UX for using hardware or on-screen keyboard to edit text
a. EDIT button at lower right brings up separate scrollable window as in Project LISTEN's Reading Tutor
-: requires new button
+: can use standard Edit widget
+: can navigate within text between pages
-: requires toggling between NARRATE and EDIT views with different text layouts

b. EDIT extends normal READ UI to allow text editing
+: more intuitive WYSIWYG interface to story page -- same screen supports both NARRATE and EDIT
+: to switch to EDIT, just start editing
+: no new button needed to enter EDIT mode
?: harder to implement than just using standard Edit widget?
?: how navigate between pages?

How to switch from EDIT to NARRATE
a. Tap Back
+: already exists
-: might be confusing because normally exits activity

b. Tap separate button, e.g. Go at upper right as in Project LISTEN's Reading Tutor
-: requires new button
+: visible target is more obvious
?: labelled how: mouth? Go?

c. Tap key on keyboard other than edit or navigation
+: no new button needed
-: not obvious which key to tap: ESC?

d. Return automatically to NARRATE (at first unnarrated sentence) after [3 seconds] <-- DO THIS
+: no button needed
+: may seem intuitive because expect to narrate after editing
-: could be disruptive if moves to different page

(How) visually indicate EDIT?
a. Display just as in ECHO, including highlighting current sentence when playing back narration
+: simplest
-: confusing?

b. Display all text the same as in regular editor, including cursor and text selected
+: avoid interfering with how editor indicates state of text

c. Display as in READ mode, but without highlighting current sentence
+: reduce interference with how editor indicates state of text

d. Display state indicator
-: requires additional display
-: easy to overlook if not apparent from the text itself
?: what form: blinking "EDIT" sign?

e. Blink entire text
+: requires no additional display
+: requires no change to text appearance
+: impossible to overlook
?: might be too distracting

Indicate which sentences lack narrations?
a. No
+: no implementation cost

b. Distinguish graphically by font, face, color, or underlining
+: shows what remains to narrate

IMPORT story: when, where, and how get (possibly illustrated) text to narrate?
a. Already in story matrix
+: no change to UI/UX
+: can update anything
?: (how) distinguish read-only from updateable?

b. Load new/draft stories from location specified in config.json
+: no change to UI/UX
+: no effort at runtime

c. Create new story in RoboTutor as a type of activity as in Project LISTEN's Reading Tutor
+: flexibility to have different story writing activities
?: how find in matrix?

d. Create new story in RoboTutor via button in debugger
+: easier to find because fixed location
-: requires new button

e. Use WRITE to enter/edit text
+: doesn't require keyboard
-: slower than skilled typing
+: could be kid activity
-: more misrecognition when target text is not known
?: how to navigate between sentences?

UPDATE: when, where, and how to save updated text and narration?
a. Automagically put into GitHub
-: might not have access

b. Save only locally; use some other process to retrieve updated assets

c. Save to location specified in config.json
+: no change to UI/UX
+: no effort at runtime
?: how cancel undesired changes?

d. Separate process uploads to server when WiFi available
+: factors out issue of how to update central asset

PICTURES: when and how to insert, replace, or move illustrations? --> DEFER FOR NOW
a. Just say no: illustrate before importing text
+: simplify EDIT
?: (how) move text between pages?
b. Illustrate before importing text, but allow moving text between (illustrated) pages

c. If text exceeds a page, duplicate illustration

d. If text exceeds a page, insert a page with no illustration

e. Let user move, delete, and insert illustrations
-: more to implement
+: more flexible

@chirag03k
Copy link
Collaborator Author

chirag03k commented May 25, 2021

Current State of Narration Capture and Edit Modes

Narration
Functionality Implemented:

  • Display Sentence (built on top of reading tutor, therefore sentence display uses exact same graphics)
  • Listen to user read sentence, with normal graphical feedback. Record it.
  • Check if ASR input contains sentence as a substring. If yes, play back that portion, store audio and .seg with the sentence as its filename, and advance to next sentence. If not, reinitialize position in sentence and prompt user to reread.
  • When audio recording is saved, storydata.json is updated so that the saved audio can be used immediately to start a story

Limitations:

  • The only way to start using narration capture mode is through enabling it in config.json and debug.json (not very user-friendly because involves editing files)
  • The audio is not saved as a packaged asset, but rather simply resides outside of RoboTutor. Process to integrate into RoboTutor yet to be determined. For now, debug.json must be used to launch the newly narrated story.
  • ASR false rejections causing faulty narrations

No edit functionality implemented.

@chirag03k chirag03k linked a pull request May 26, 2021 that will close this issue
@chirag03k chirag03k linked a pull request May 26, 2021 that will close this issue
@JackMostow JackMostow added enhancement New feature or request help wanted Extra attention is needed labels Dec 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants