Skip to content

awspolly: add compression and max-compression properties#1

Open
raytiley wants to merge 1 commit into
speech-elements-desynchronizedfrom
awspolly-manual-compression-control
Open

awspolly: add compression and max-compression properties#1
raytiley wants to merge 1 commit into
speech-elements-desynchronizedfrom
awspolly-manual-compression-control

Conversation

@raytiley
Copy link
Copy Markdown
Member

  • compression (f64, default 1.0): when > 1.0, every cue is compressed to input_duration / compression, overriding max-overflow. Lets a caller actively shrink the per-cue duration target to claw back accumulated drift on languages where TTS is denser than source.
  • max-compression (f64, default 0.0 = unlimited): hard cap on the signalsmith_stretch factor. When the natural factor would exceed this cap, clamp it and let the output buffer play longer than the source span. Prevents chipmunk artifacts on outlier cues where the synthesized audio is much longer than its input duration budget.

Both are mutable_playing so an external controller can tune them at runtime based on observed pipeline drift.

- compression (f64, default 1.0): when > 1.0, every cue is compressed
  to input_duration / compression, overriding max-overflow. Lets a
  caller actively shrink the per-cue duration target to claw back
  accumulated drift on languages where TTS is denser than source.
- max-compression (f64, default 0.0 = unlimited): hard cap on the
  signalsmith_stretch factor. When the natural factor would exceed
  this cap, clamp it and let the output buffer play longer than the
  source span. Prevents chipmunk artifacts on outlier cues where the
  synthesized audio is much longer than its input duration budget.

Both are mutable_playing so an external controller can tune them at
runtime based on observed pipeline drift.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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