fix(kokoro): catch unsupported language RuntimeError and return 422 - #669
Open
Archlie wants to merge 1 commit into
Open
fix(kokoro): catch unsupported language RuntimeError and return 422#669Archlie wants to merge 1 commit into
Archlie wants to merge 1 commit into
Conversation
When a Kokoro voice uses a language not supported by the phonemizer backend (e.g. Chinese 'zh' with espeak), the RuntimeError was unhandled, causing a 500 Internal Server Error. Fix: catch RuntimeError with 'not supported' in the message in KokoroModelManager.handle_speech_request and re-raise as ValueError so the speech router returns a proper 422 with a clear error message. Also generalize the speech router's ValueError handling to return 422 for all validation errors, not just speed-related ones. Closes speaches-ai#647
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
When a Kokoro voice uses a language not supported by the phonemizer backend (e.g. Chinese
zhwith espeak), theRuntimeErrorwas unhandled, causing a 500 Internal Server Error.This PR fixes the issue by:
kokoro.py: CatchingRuntimeErrorwith'not supported'in the message duringtts.create_stream()and re-raising asValueErrorwith a clear error message identifying the unsupported language and voice.speech.py: Generalizing theValueErrorhandling in the speech router to return 422 for all validation errors (not just speed-related ones), since anyValueErrorfrom the handler represents invalid client input.Before (500 error)
After (422 with clear message)
{ "detail": "Language 'zh' is not supported by the phonemizer backend for voice 'zf_xiaobei'. language \"zh\" is not supported by the espeak backend" }Closes #647