Skip to content

feat(cactus): add custom_vocabulary and vocabulary_boost to TranscribeOptions#4195

Merged
yujonglee merged 1 commit intomainfrom
devin/1771914001-cactus-custom-vocabulary
Feb 24, 2026
Merged

feat(cactus): add custom_vocabulary and vocabulary_boost to TranscribeOptions#4195
yujonglee merged 1 commit intomainfrom
devin/1771914001-cactus-custom-vocabulary

Conversation

@devin-ai-integration
Copy link
Contributor

feat(cactus): add custom_vocabulary and vocabulary_boost to TranscribeOptions

Summary

Prepares crates/cactus for upstream cactus-compute/cactus#396, which will add custom vocabulary / hotword biasing to the transcription APIs.

  • Adds custom_vocabulary: Option<Vec<String>> and vocabulary_boost: Option<f32> to TranscribeOptions. Both are serde-skipped when None, so they're invisible to the current C FFI until upstream ships support.
  • Wires ListenParams.keywordsTranscribeOptions.custom_vocabulary in both the streaming and batch transcription paths in transcribe-cactus.

vocabulary_boost is intentionally left unwired — there's no source for it in ListenParams today; it's there so callers can set it once upstream supports it.

Review & Testing Checklist for Human

  • Verify the cactus C FFI silently ignores unknown keys in options_json. If it errors on unrecognized fields, passing custom_vocabulary when keywords is non-empty would break transcription. (Most likely safe since skip_serializing_if keeps it out when None, and no current caller sets keywords for the cactus path — but worth confirming.)
  • Confirm field names (custom_vocabulary, vocabulary_boost) match the upstream issue's proposed JSON schema. A mismatch would require a rename later.
  • Test locally with the cactus model: pass keywords in ListenParams and verify transcription still succeeds without errors (i.e., the extra JSON key doesn't cause a C-side parse failure).

Notes

  • Could not compile-check locally — the cactus-sys C++ build requires ARM architecture flags not available on x86. Changes are minimal struct additions + field wiring.
  • Link to Devin run
  • Requested by: @yujonglee

…eOptions

Prepare crates/cactus for upstream cactus-compute/cactus#396 which adds
custom vocabulary / hotword biasing for transcription.

- Add custom_vocabulary (Vec<String>) and vocabulary_boost (f32) fields
  to TranscribeOptions, serialized into options_json for the C FFI.
- Wire ListenParams.keywords through to custom_vocabulary in both the
  streaming and batch transcription paths in transcribe-cactus.

Co-Authored-By: yujonglee <yujonglee.dev@gmail.com>
@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@netlify
Copy link

netlify bot commented Feb 24, 2026

Deploy Preview for hyprnote canceled.

Name Link
🔨 Latest commit 0cd208b
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/699d43a60611a200089a870b

@netlify
Copy link

netlify bot commented Feb 24, 2026

Deploy Preview for hyprnote-storybook canceled.

Name Link
🔨 Latest commit 0cd208b
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/699d43a6775fd300087121cd

@yujonglee yujonglee merged commit 11d001d into main Feb 24, 2026
15 checks passed
@yujonglee yujonglee deleted the devin/1771914001-cactus-custom-vocabulary branch February 24, 2026 06:31
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.

1 participant