Skip to content

Conversation

@Nik-09
Copy link
Member

@Nik-09 Nik-09 commented Oct 31, 2025

The wiki adds tutorials on how to add manual voiceovers and how to regenerate automatic voiceovers for Oppia lessons.

### Pre-requisites

- The exploration must be **curated** (i.e., linked to a published story).
- Ensure the feature flags `"automatic_voiceover_regeneration_from_exp"` and `"show_regenerated_voiceovers_to_learners"` are enabled in the **Release Coordinator** page. Contact the release team for confirmation **(TODO: add Email)**.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note to self: add emails to these lines.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@Nik-09 Nik-09 requested a review from seanlip October 31, 2025 09:36
Copy link
Member Author

@Nik-09 Nik-09 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @seanlip PTAL once you are free.
Thank you!

Copy link
Member

@seanlip seanlip left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @Nik-09 -- took a pass!

2. Select the desired **language and accent**.
> **Note:** For non-English languages, ensure that the translation for that language exists. You cannot add a voiceover unless the translation is available.
3. Upload your manual voiceover in the selected language-accent pair.
4. And then save the draft changes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"And then save" --> "Save".

Do you want to add a screenshot (perhaps with numbers that correspond to the steps)?

### Pre-requisites

- The exploration must be **curated** (i.e., linked to a published story).
- Ensure the feature flags `"automatic_voiceover_regeneration_from_exp"` and `"show_regenerated_voiceovers_to_learners"` are enabled in the **Release Coordinator** page. Contact the release team for confirmation **(Email: [email protected])**.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is going to get out of date quite quickly, right (the flags will be removed on successful launch)?


- The exploration must be **curated** (i.e., linked to a published story).
- Ensure the feature flags `"automatic_voiceover_regeneration_from_exp"` and `"show_regenerated_voiceovers_to_learners"` are enabled in the **Release Coordinator** page. Contact the release team for confirmation **(Email: [email protected])**.
- Admins must enable voiceover regeneration functionality via the **Admin Misc** tab. Reach out to the admin to verify. **(Email: [email protected])**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use voiceover-tech-support@. All public contact should be to group aliases.

This will also go out of date though, right? Once we start supporting automated voiceovers then this step is not needed since it's always on?

Or maybe I don't understand who is supposed to use these instructions. Is it the individual creator or the voiceover admin or someone else? I feel like the first step is to just go to the translation tab and find the button; the 2nd-4th prereqs here seem like an appendix for the voiceover tech support team to look at and should probably only go at the very end.


1. Go to the **Translation** tab in the Exploration Editor.
2. Select the **language and accent**.
3. Click **Regenerate Voiceovers** for the selected language-accent.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar to above, maybe this needs a screenshot with numbers?


## Adding a New Language-Accent Pair to Oppia's Voiceover Support

Oppia supports only selected **language-accent pairs** for voiceovers. To onboard a new pair, follow these steps:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

onboard --> add

Also, suggest explaining what "add a new pair" entails -- something like "this will make the language/accent pair available in ..." (i.e., explain the consequences for both learners and creators).


1. Update the fields `LANGUAGE_CODE_TO_MATH_SYMBOL_PRONUNCIATIONS` & `LANGUAGE_CODE_TO_SENTENCE_ENDING_PUNCTUATION_MARKS` in the file **[constants.ts](https://github.com/oppia/oppia/blob/develop/assets/constants.ts)** via a pull request.

> **Note:** If you're adding a new **accent** to a language already supported (e.g., adding "English (India)" when "English (United States)" is already supported), you don't need to update the above mentioned fields.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a language already supported --> an already-supported language


**Optional: Enable Automatic Voiceover Support after the above steps**

4. Set **Supports Autogeneration** to "Yes" **only if**:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Drop the "Optional: ..." above, just change "Set ..." to "(Optional) Set ..." here.

- The language-accent is supported by Azure Text-to-Speech service.
- You are aware that this will incur costs.

> ⚠️ Language-accents like **Hinglish** and **Nigerian Pidgin** do not support autogeneration due to Azure limitations, and you will not be able to enable the autogeneration flag for them.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

| **ServiceError** | Indicates an error returned by the Speech service.<br><br> - Check the error message and look for solutions online.<br>- Verify that the language-accent code used for speech synthesis is still supported by Azure TTS. (See reference [here](https://learn.microsoft.com/en-us/azure/ai-services/speech-service/language-support?tabs=stt)).<br>- If no action is needed, retry after 10–15 minutes.<br>- Take appropriate actions based on the error message.<br>- If the issue continues, contact Azure Support or raise a question with the Azure team. |
| **ServiceUnavailable** | Indicates that the Speech service is currently unavailable.<br><br>- Retry after 10–15 minutes. |
| **Autogeneration button disabled:** Autogenerated voiceovers are not supported for the selected language accent. Please reach out to the voiceover admin if you would like them to be supported.| Reach out to voiceover admins ([email protected]), they will either add the language accents to Oppia's voiceovers support or give you the rationale why this language accent can't be added.|
| **Autogeneration button disabled:** Voiceover autogeneration via cloud services is currently disabled. Please contact the admins for more information.| Contact admin ([email protected]), for enabling Cloud based text-to-speech service from Admin tab.|
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use voiceover-tech-support@. All public contact should be to group aliases.


## Technical Cheat Sheet – Troubleshooting Voiceover Regeneration

| **Error Type** | **Steps to Fix** |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two types of errors, technical errors and errors in manual processes. These should be separate tables.

Have the manual processes one come first since all the above is user documentation.

For technical errors, explain where these errors will surface.

@seanlip seanlip assigned Nik-09 and unassigned seanlip Nov 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants