Add --unduck-delay to keep music ducked after TTS
This commit is contained in:
1 parent
43a183a232
commit
61d5d540db
5 files changed
+21
-1
No files matched your search
@@ -118,6 +118,12 @@ async def main() -> None:
|
||||
default=0.5,
|
||||
help="Seconds to wait after TTS finishes before opening the mic for continued conversation (default: 0.5)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--unduck-delay",
|
||||
type=float,
|
||||
default=0.0,
|
||||
help="Seconds to keep music ducked after TTS finishes (default: 0.0)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--wakeup-sound",
|
||||
default=str(_SOUNDS_DIR / "wake_word_triggered.flac"),
|
||||
@@ -438,6 +444,7 @@ async def main() -> None:
|
||||
preferences_path=preferences_path,
|
||||
refractory_seconds=args.refractory_seconds,
|
||||
continue_conversation_delay=args.continue_conversation_delay,
|
||||
unduck_delay=args.unduck_delay,
|
||||
output_only=args.output_only,
|
||||
download_dir=args.download_dir,
|
||||
volume=initial_volume,
|
||||
|
||||
@@ -124,6 +124,7 @@ class ServerState:
|
||||
preferences_path: Path
|
||||
download_dir: Path
|
||||
continue_conversation_delay: float = 0.5 # seconds to wait after TTS before opening mic
|
||||
unduck_delay: float = 0.0 # seconds to keep music ducked after TTS ends
|
||||
|
||||
media_player_entity: "Optional[MediaPlayerEntity]" = None
|
||||
satellite: "Optional[VoiceSatelliteProtocol]" = None
|
||||
|
||||
@@ -957,7 +957,12 @@ class VoiceSatelliteProtocol(APIServer):
|
||||
threading.Timer(self.state.continue_conversation_delay, _start_continued_conversation).start()
|
||||
else:
|
||||
self._continue_conversation = False
|
||||
self.unduck()
|
||||
unduck_delay = self.state.unduck_delay
|
||||
if unduck_delay > 0:
|
||||
_LOGGER.debug("Unducking after %.2fs", unduck_delay)
|
||||
threading.Timer(unduck_delay, self.unduck).start()
|
||||
else:
|
||||
self.unduck()
|
||||
self._emit(LVAEvent.IDLE)
|
||||
|
||||
_LOGGER.debug("TTS response finished")
|
||||
|
||||
Reference in new issue
Block a user