fix(Ditto): smooth pressure release on speech onset to prevent teleport

This commit is contained in:
Hawk Lee
2026-01-26 00:58:18 +08:00
parent c8eb5a327e
commit 8a53e2f4f7
2 changed files with 5 additions and 5 deletions
@@ -350,8 +350,8 @@ class Audio2Motion:
self.silence_frames = 0
self.is_talking_state = True
self.persistent_pressure = 0.0 # Release positional pull instantly
print(f"[Ditto] Speech Onset Engagement (v1.9.224). Seed Offset={self.reset_seed_offset}")
# self.persistent_pressure = 0.0 # Release positional pull instantly -> CHANGED: Let it decay naturally (v1.9.400 Fix)
print(f"[Ditto] Speech Onset Engagement (v1.9.224). Seed Offset={self.reset_seed_offset} | Pressure Retained: {self.persistent_pressure:.2f}")
else:
self.silence_frames += step_len
@@ -393,7 +393,7 @@ class Audio2Motion:
if reset or res_kp_seq is None:
# [v1.9.400] INSTANT PRESSURE RELEASE
# Kill residual IDLE anchor pull-force immediately to prevent 'Hard Reset' feeling.
self.persistent_pressure = 0.0
# self.persistent_pressure = 0.0 -> CHANGED: Let it decay (Fix Teleport)
# actual_last is the physical tail of our history
actual_last = res_kp_seq[:, -1:] if res_kp_seq is not None else self.s_kp_cond.reshape(1, 1, -1)
+2 -2
View File
@@ -460,8 +460,8 @@ class StreamSDK:
else:
# onset_idx == 0. We are at Onset.
if silence_frames_count >= min_silence_for_reset:
# do_reset = True
print(f"[Ditto] Speech Onset at Frame {idx}. RESET SKIPPED (Silence: {silence_frames_count}) [Debug Fix].")
do_reset = True
print(f"[Ditto] Speech Onset at Frame {idx}. RESET triggered (Silence: {silence_frames_count}).")
silence_frames_count = 0
# Handle trailing