Worklog for task "Develop a Vietnamese language learning system for adult learners"
Initial Vietnamese Voiceover Research
We tested using the browser's speechSynthesis for course voiceover. Based on the research results, it cannot be used as the primary mechanism.
Findings
- The Vietnamese voice cannot be reliably installed in the browser.
- The path available via Reading Mode is extremely inconvenient for a regular user: open reading mode → go to settings → open languages → add Vietnamese.
- After enabling Vietnamese, a
Downloading voices ...message appears, but the download can hang indefinitely and never actually complete. - Official documentation provides no clear guarantee of availability and support for a specific Vietnamese voice.
- In Chromium, the language may be declared in the source code, but Chromium itself does not supply the final voice dictionaries. This is the responsibility of the specific browser/cloud provider—in our case, Google—and there is no transparent guarantee that such a dictionary is available.
- Even if the installation works for a developer, we cannot build a course that requires users to manually install additional voices/dictionaries.
Additional Risk
The developer is not a native Vietnamese speaker and cannot independently guarantee that the synthesis correctly conveys the quality of sounds and tones. Therefore, the final quality must be verified with a native speaker.
Decision Made
Switch to a custom, controlled voiceover pipeline via OpenRouter + Google Gemini.
Do not generate voiceover on every playback. We need to create a permanent audio dictionary: generate a letter/syllable/word/phrase once, save metadata in the DB and the audio file itself in file storage, and then reuse the ready-made recording multiple times.
Also provide for:
- regeneration of specific voiceovers;
- storage of the model version and generation parameters;
- quality check statuses;
- subsequent verification by a native speaker;
- separate Northern/Southern variants if necessary;
- the ability to manually replace a synthetic recording with a reference native speaker recording.
Related Task
A child task has been created for the design and implementation of a custom TTS pipeline and voiceover dictionary: "Develop a custom Vietnamese voiceover pipeline and audio dictionary", taskId cmu8uqhzc0we6qw0qlviqsm7q.
The first target set for generation is the primer (abeceda): basic sounds, combinations, tones, diphthongs/triphthongs, and word examples. After quality verification using the same mechanism, expand the voiceover to the main course dictionary.
Design a methodology and learning interface for Vietnamese: an initial primer, learning through familiar meanings, constant returns to phonetics, and transitioning to spontaneous speech.