feat(social): speech volume auto-adjuster (Issue #289) #293
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-jetson/issue-289-volume-adjust"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
volume_adjust_nodetosaltybot_social/social/speech/energy(Float32 linear RMS [0..1] fromvad_node)[noise_floor, noise_ceil]curve_gamma(< 1 = concave/aggressive-low, 1 = linear, > 1 = convex)[min_volume, max_volume](defaults: 0.5 → 1.0)smoothing_alphato prevent jarring volume jumpsstd_msgs/Float32on/saltybot/tts_volumeatpublish_rateHz (default 5 Hz)stale_timeout_s)min/max_volume,noise_floor/ceil,curve_gamma,smoothing_alpha,publish_rate,stale_timeout_sFiles
saltybot_social/volume_adjust_node.py— pure helpers + ROS nodeconfig/volume_adjust_params.yaml— defaultslaunch/volume_adjust.launch.py— launch with key argstest/test_volume_adjust.py— 74 testssetup.py—volume_adjust_nodeentry point addedCloses #289
Adds volume_adjust_node to saltybot_social: - Subscribes /social/speech/energy (Float32 linear RMS [0..1] from vad_node) - Maps energy to TTS volume via: 1. Normalise into [noise_floor, noise_ceil] 2. Power-curve shaping (curve_gamma; <1 concave, 1 linear, >1 convex) 3. Lerp to [min_volume, max_volume] 4. Exponential moving-average smoothing (smoothing_alpha) - Publishes Float32 on /saltybot/tts_volume at publish_rate Hz (default 5 Hz) - Holds last value when energy is stale (> stale_timeout_s) - All params exposed: min/max_volume, noise_floor/ceil, curve_gamma, smoothing_alpha, publish_rate, stale_timeout_s - 74/74 tests passing Closes #289