I’m using https://rhasspy.readthedocs.io/en/latest/ together with HomeAssistant which does what you describe. It combines a lot of different things into one nice UI, one of the things is listening to a wake word with help of one of those:
- Raven
- Porcupine
- Snowboy
- Mycroft Precise
- Pocketsphinx
- External Command
With some of them you can even train it to use your own wake word.
Oh and because last year was the year of the voice in HomeAssistant, they build it in into HomeAssistant itself so you don’t need to set it up as clumsy as I did: https://www.home-assistant.io/blog/2023/10/12/year-of-the-voice-chapter-4-wakewords/