from platypush.message.event import Event class SttEvent(Event): """ Base class for speech-to-text events """ def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) class SpeechStartedEvent(SttEvent): """ Event triggered when speech starts being detected. """ pass class SpeechDetectedEvent(SttEvent): """ Event triggered when speech is detected. """ def __init__(self, speech: str, *args, **kwargs): """ :param speech: Speech detected, as a string """ super().__init__(*args, speech=speech.strip(), **kwargs) class ConversationDetectedEvent(SpeechDetectedEvent): """ Event triggered when speech is detected after a hotword. """ pass class HotwordDetectedEvent(SttEvent): """ Event triggered when a custom hotword is detected. """ def __init__(self, hotword: str = '', *args, **kwargs): """ :param hotword: The detected user hotword. """ super().__init__(*args, hotword=hotword, **kwargs) class SpeechDetectionStartedEvent(SttEvent): """ Event triggered when the speech detection engine starts. """ pass class SpeechDetectionStoppedEvent(SttEvent): """ Event triggered when the speech detection engine stops. """ pass # vim:sw=4:ts=4:et: