feat(maya): add Maya Research voice models TTS plugin - #7175
Open
dheemutech wants to merge 3 commits into
Open
Conversation
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
Add a native Maya Research text-to-speech provider, built directly from upstream
main(e9a3422f47f070fbecfb5e8580d9803f48e1b6d6). This is a self-contained contribution with its own implementation, tests and branch, not a dependency on another pending contribution.Provider/package names are model-independent. The current public model is Maya Calyx, with Aarav as the explicit default voice. Model and voice strings are not restricted to an enum at runtime. See the Maya public API contract and Maya Research Cookbook.
Implementation
TTS,ChunkedStream,SynthesizeStream,ConnectionPool,AudioEmitter, plugin registration, typed namespace package andmayaextra.push_text, thenend_input. No core implementation changes.Review fixes in 10cfe4d
All three initial review concerns were reproduced and addressed, with replies in their existing threads:
The v2 protocol has no per-sentence completion acknowledgement. Audio progress is not proof every sentence finished; the README makes the idle-input tradeoff explicit and requires applications to bound the overall LLM/turn and end or cancel abandoned input.
Follow-up
a2333554fixes the fourth finding:update_options(language=None)restores automatic/mixed-language mode for the next turn, while omitted arguments leave settings unchanged. Active turns keep their snapshot. Constructorlanguage=Nonealso omits the startup language field. Regression coverage includes active-turn isolation and invalid-update atomicity. A real Hindi turn followed by a cleared-language mixed Hindi/English turn completed, producing 130,560 and 192,000 PCM bytes respectively, with the second startup omitting language.Verification of the revised candidate
pytest.mark.unit, no service keys/network.The current GitHub checks are attached to this PR. Reproduction commands are in the plugin README. Live tests used explicitly authorized synthetic inputs and are not CI requirements. No physical microphone, speaker listening assessment or LiveKit room transport was tested. No latency SLA or universal voice quality is claimed.
Final revision
a2333554passed the upstream Linux unit job: 2,745 passed, 5 skipped, includingtests/test_maya_tts.py. Repository lint, both type-check jobs and Devin Review passed. Devin confirmed all four reported findings resolved. The cookbook pins this revision ate166feed; its six required CI jobs passed (scheduled drift job skipped; public-source checks were also run manually and passed).No unrelated provider implementation or existing package version was changed. Initial new-package metadata and workspace registration enable installation; release/version policy is left to maintainers. The CLA is signed. Maintainer review/merge remains pending.