def in_training_intent(self, message: Any, sender: RhasspyActor) -> None: """Handle messages in training_intent state.""" if isinstance(message, IntentTrainingComplete): self._logger.info("Training complete") if self.reload_actors_after_training: self._logger.debug("Reloading actors") # Wake listener self.send(self.wake, ActorExitRequest()) self._wake = self.createActor(self.wake_class) self.actors["wake"] = self.wake # Speech decoder self.send(self.decoder, ActorExitRequest()) self._decoder = self.createActor(self.decoder_class) self.actors["decoder"] = self.decoder # Intent recognizer self.send(self.recognizer, ActorExitRequest()) self._recognizer = self.createActor(self.recognizer_class) self.actors["recognizer"] = self.recognizer # Configure actors self.wait_actors = { "wake": self.wake, "decoder": self.decoder, "recognizer": self.recognizer, } for actor in self.wait_actors.values(): if actor == self.mqtt: continue # skip self.send( actor, ConfigureEvent(self.profile, preload=self.preload, **self.actors), ) self.transition("training_loading") else: self.transition("ready") self.send(self.training_receiver, ProfileTrainingComplete()) elif isinstance(message, IntentTrainingFailed): self.transition("ready") self.send(self.training_receiver, ProfileTrainingFailed(message.reason))
def in_training_loading(self, message: Any, sender: RhasspyActor) -> None: """Handle messages in training_loading state.""" if isinstance(message, Configured): self.problems[message.name] = message.problems self.wait_actors = { name: actor for name, actor in self.wait_actors.items() if actor != sender } if not self.wait_actors: self._logger.info("Actors reloaded") self.transition("ready") self.send(self.training_receiver, ProfileTrainingComplete()) else: self.handle_forward(message, sender)