11 Commits
Author SHA1 Message Date
Florian Asche 980ceeef2c fix(docker): update default env file from dev.env to .env 2026-04-22 17:27:40 +02:00
Florian Asche 32c9872f78 fix(docker): standardize env file config for dev compose
Use dev.env as default environment file for development stack,
add ENV_FILE override support to both defined services.
2026-04-22 17:24:18 +02:00
Florian Asche 1ea79aa8bb feat(docker): add custom image and tag env configuration (#306)
- Replace hardcoded image values with overrideable env variables
- Standardize version env var from LVA_VERSION to LVA_IMAGE_TAG
- Add new env options documentation to .env.example
- Add dev.env to gitignore
- Disable default mic noise suppression in dev compose

BREAKING CHANGE: LVA_VERSION env var replaced with LVA_IMAGE_TAG
2026-04-22 17:22:55 +02:00
Omar Amin 3ea32895ee Wake word sensitivity (#207)
## Summary
- Introduces configurable wake word and stop word sensitivity
- Adds UI-controllable thresholds for wake word detection
- Refactors wake word loading and handling logic
- Improves audio preprocessing and runtime behavior

## Key Features
- Per-wake-word sensitivity configuration (Wake Word 1 & 2)
- Configurable stop word sensitivity
- Fine-grained numeric control (0.0 – 1.0, step 0.001)
- Sensitivity values exposed as Number Entities for Home Assistant
- Persistent storage of user-defined sensitivity values

## Wake Word Handling
- Support for model-specific default thresholds (`probability_cutoff`)
- Automatic fallback to defaults if no user value is set
- Separate thresholds for:
  - Wake Word 1
  - Wake Word 2
  - Stop Word
- Unified handling for MicroWakeWord and OpenWakeWord models

## UI / API Integration
- Adds new Home Assistant entities:
  - `WakeWord1SensitivityNumberEntity`
  - `WakeWord2SensitivityNumberEntity`
  - `StopWordSensitivityNumberEntity`
- Entities support:
  - Live updates
  - Persistence via preferences
  - Synchronization with runtime state
- Pushes updated values to Home Assistant on startup

## Refactoring
- Extracted wake word logic into `wake_word.py`
  - Model discovery
  - Model loading
  - Stop word handling
- Simplified `__main__.py` by delegating wake word responsibilities
- Improved separation between configuration and runtime state

## Additional Changes
- Improved debug logging across initialization and runtime

## Impact
- Enables fine-tuning of wake word detection accuracy
- Reduces false positives and missed triggers
- Improves usability via UI-based configuration
- Provides better flexibility across different environments and microphones
2026-04-21 02:04:11 +02:00
Florian Asche 043e8fb1ff Cookie file and other default parameters (#231)
* adding a more robust system around the cookie file and add other default values for parameters
* removed duplicate PulseAudio running message
2026-03-11 21:03:21 +01:00
Florian Asche b53678e0f3 fix: cookie error (#127) (#210)
* Add support for custom PulseAudio cookie configuration
2026-03-07 17:33:48 +01:00
Florian Asche b800f93f50 Improve script/run error handling and return code consistency (#186) 2026-03-04 01:07:45 +01:00
Florian Asche 80e0d6254e Fix: Suppress spurious end-file event when starting playback and tts.speak (#179)
* bugfix: supress first end of file event and only callback on second one
* add some notes on testing
* fixed tts.speak
* fix unduck after timer end
* use custom docker-entrypoint on dev container
* change mv to copy in the docs when using .env file
2026-02-26 01:31:18 +01:00
Florian Asche 7de510cb1f Add version and hash to docker container (#167)
* Add version and git hash to image
* Add version reporting to HA via api
2026-02-21 20:38:46 +01:00
Florian AscheandFlorian Asche 70fab99c9f Feature/custom paths (#165)
* add possibility to add own wake words and sounds
* improve documentation

---------

Co-authored-by: Florian Asche <git@florian-asche.de>
2026-02-20 19:05:38 +01:00
Florian Asche 4052daae01 hotfix for mac-detection and various variable names (#139)
* Change Client-Name: The client name inside LVA is not capable of having spaces in the name. Fixed the example.
* Add first version of Docker-Compose for developers
* Add variable for network-interface and auto detection by default
* Added autodetection for the MAC-Address based on the detected or specified network-interface.
* Switched from listening on all IP-Addresses to the IP of the default interface, usually u set the correct network-interface and it will automatically detect the right IP-Address.
* Added missing variables, fixed variables names
* Fixed not working variables for example sound-files.
* Moved the auto-name creation from shell to python. The name is no longer mandatory, it will be generated if no name is given.
2026-02-13 19:50:20 +01:00