Repository navigation
feat: add the scene3 text-to-speech model - #85
Merged
Merged
Conversation
scene3 speaks one text block, where inline [bracketed] cues such as [sighs] or [laughs] direct the delivery, and can clone one HTTP(S) reference recording. The audio block's meta.text may carry that recording's transcript; the request goes to /v1/audio/speech with the reference in metadata.references.
scene3 is used when the user or an external policy names it; the Qwen defaults are unchanged. The rejection tests already pin each message exactly, so the extra pattern check is dropped.
LingXuanYin
force-pushed
the
feat/scene3
branch
from
October 28, 2026 01:31
599e93a to
aabe5a4
Compare
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
Adds
scene3("Scene 3"), a text-to-speech model with inline delivery cues and one-reference cloning. Rebased onto main after #56 / #83 / #84;qwen-audio-3.1-tts-flashkeeps its validation and request body.Request body sent to
/v1/audio/speech:inputis the text block as given;[bracketed]cues such as[sighs]stay in it. The URL and transcript are trimmed, andtextis sent only when a transcript was given. Request-level meta (for examplevoice_prompt) and any audio meta other thantextare rejected before the request is sent.Evidence
1e3b000with only the new tests, 15 fail: the model does not exist. With the declaration but no adapter branch, 9 fail withUnsupported audio speech model: scene3: the three request tests, the four adapter-only rules (request meta, audio meta key, blank or non-stringmeta.text), the overridden-declaration limit, and the built-in example check.After: rebased onto
4b728acasaabe5a4, exported without line-ending conversion, in node:24-slim:pnpm lintchecks 72 files with no errors, typecheck passes, vitest 411 passed (19 files; main alone has 397), build completes.scene3yet; live cases come with the end-to-end check once it does.Merge Danger
Door: two-way for the code; a published version stays.
Blast Radius: none for existing callers. The change only adds a model id; the qwen path is untouched.
The version bump comes in a separate PR (0.2.2), as usual. Dependents still on
^0.1.xget the same change fromrelease/0.1(#86).