Add Computer wakeword and selector
This commit is contained in:
parent
aca7e16ed0
commit
206691257d
127
supersensor.yaml
127
supersensor.yaml
@ -103,6 +103,11 @@ globals:
|
|||||||
restore_value: no
|
restore_value: no
|
||||||
initial_value: "0"
|
initial_value: "0"
|
||||||
|
|
||||||
|
- id: current_wake_word
|
||||||
|
type: std::string
|
||||||
|
restore_value: yes
|
||||||
|
initial_value: '"mww_computer"'
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- id: light_off
|
- id: light_off
|
||||||
then:
|
then:
|
||||||
@ -378,6 +383,8 @@ micro_wake_word:
|
|||||||
gain_factor: 4
|
gain_factor: 4
|
||||||
stop_after_detection: false
|
stop_after_detection: false
|
||||||
models:
|
models:
|
||||||
|
- model: github://genehand/Custom_V2_MicroWakeWords/models/computer/computer.json@update-json
|
||||||
|
id: mww_computer
|
||||||
- model: github://esphome/micro-wake-word-models/models/v2/hey_jarvis.json
|
- model: github://esphome/micro-wake-word-models/models/v2/hey_jarvis.json
|
||||||
id: mww_hey_jarvis
|
id: mww_hey_jarvis
|
||||||
- model: github://esphome/micro-wake-word-models/models/v2/hey_mycroft.json
|
- model: github://esphome/micro-wake-word-models/models/v2/hey_mycroft.json
|
||||||
@ -1120,34 +1127,100 @@ select:
|
|||||||
name: "LD2410C Distance Resolution"
|
name: "LD2410C Distance Resolution"
|
||||||
|
|
||||||
- platform: template
|
- platform: template
|
||||||
name: "Wake word sensitivity"
|
name: "Wake Word Selector"
|
||||||
optimistic: true
|
id: wake_word_selector
|
||||||
initial_option: Moderately sensitive
|
|
||||||
restore_value: true
|
|
||||||
entity_category: config
|
|
||||||
options:
|
options:
|
||||||
- Slightly sensitive
|
- "Computer"
|
||||||
- Moderately sensitive
|
- "Hey Jarvis"
|
||||||
|
- "Hey Mycroft"
|
||||||
|
- "Okay Nabu"
|
||||||
|
- "Alexa"
|
||||||
|
initial_option: "Computer"
|
||||||
|
optimistic: true
|
||||||
|
restore_value: true
|
||||||
|
set_action:
|
||||||
|
# Disable models that aren't selected
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x != "Computer";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.disable_model: mww_computer
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x != "Hey Jarvis";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.disable_model: mww_hey_jarvis
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x != "Hey Mycroft";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.disable_model: mww_hey_mycroft
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x != "Okay Nabu";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.disable_model: mww_okay_nabu
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x != "Alexa";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.disable_model: mww_alexa
|
||||||
|
# Enable model we selected
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x == "Computer";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.enable_model: mww_computer
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x == "Hey Jarvis";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.enable_model: mww_hey_jarvis
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x == "Hey Mycroft";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.enable_model: mww_hey_mycroft
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x == "Okay Nabu";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.enable_model: mww_okay_nabu
|
||||||
|
- if:
|
||||||
|
condition:
|
||||||
|
lambda: 'return x == "Alexa";'
|
||||||
|
then:
|
||||||
|
- micro_wake_word.enable_model: mww_alexa
|
||||||
|
|
||||||
|
- platform: template
|
||||||
|
name: "Wake Word Sensitivity"
|
||||||
|
optimistic: true
|
||||||
|
initial_option: Default
|
||||||
|
restore_value: true
|
||||||
|
options:
|
||||||
|
- Default
|
||||||
|
- More sensitive
|
||||||
- Very sensitive
|
- Very sensitive
|
||||||
on_value:
|
set_action:
|
||||||
# Sets specific wake word probabilities computed for each particular model
|
# Sets specific wake word probabilities computed for each particular model
|
||||||
# Note probability cutoffs are set as a quantized uint8 value, each comment has the corresponding floating point cutoff
|
# Note probability cutoffs are set as a quantized uint8 value, each comment has the corresponding floating point cutoff
|
||||||
# False Accepts per Hour values are tested against all units and channels from the Dinner Party Corpus.
|
- lambda: |-
|
||||||
# These cutoffs apply only to the specific models included in the firmware: okay_nabu@20241226.3, hey_jarvis@v2, hey_mycroft@v2
|
if (x == "Default") {
|
||||||
lambda: |-
|
id(mww_computer).set_probability_cutoff(168); // 0.66 (default)
|
||||||
if (x == "Slightly sensitive") {
|
id(mww_hey_jarvis).set_probability_cutoff(247); // 0.97 (default)
|
||||||
id(mww_hey_jarvis).set_probability_cutoff(247); // 0.97 -> 0.563 FAPH on DipCo (Manifest's default)
|
id(mww_hey_mycroft).set_probability_cutoff(242); // 0.95 (default)
|
||||||
id(mww_hey_mycroft).set_probability_cutoff(253); // 0.99 -> 0.567 FAPH on DipCo
|
id(mww_okay_nabu).set_probability_cutoff(217); // 0.85 (default)
|
||||||
id(mww_okay_nabu).set_probability_cutoff(217); // 0.85 -> 0.000 FAPH on DipCo (Manifest's default)
|
id(mww_alexa).set_probability_cutoff(217); // 0.85 (default)
|
||||||
id(mww_alexa).set_probability_cutoff(217); // 0.85 -> 0.000 FAPH on DipCo (Manifest's default)
|
} else if (x == "More sensitive") {
|
||||||
} else if (x == "Moderately sensitive") {
|
id(mww_computer).set_probability_cutoff(153); // 0.60
|
||||||
id(mww_hey_jarvis).set_probability_cutoff(235); // 0.92 -> 0.939 FAPH on DipCo
|
id(mww_hey_jarvis).set_probability_cutoff(235); // 0.92
|
||||||
id(mww_hey_mycroft).set_probability_cutoff(242); // 0.95 -> 1.502 FAPH on DipCo (Manifest's default)
|
id(mww_hey_mycroft).set_probability_cutoff(237); // 0.93
|
||||||
id(mww_okay_nabu).set_probability_cutoff(176); // 0.69 -> 0.376 FAPH on DipCo
|
id(mww_okay_nabu).set_probability_cutoff(176); // 0.69
|
||||||
id(mww_alexa).set_probability_cutoff(176); // 0.69 -> 0.376 FAPH on DipCo
|
id(mww_alexa).set_probability_cutoff(176); // 0.69
|
||||||
} else if (x == "Very sensitive") {
|
} else if (x == "Very sensitive") {
|
||||||
id(mww_hey_jarvis).set_probability_cutoff(212); // 0.83 -> 1.502 FAPH on DipCo
|
id(mww_computer).set_probability_cutoff(138); // 0.54
|
||||||
id(mww_hey_mycroft).set_probability_cutoff(237); // 0.93 -> 1.878 FAPH on DipCo
|
id(mww_hey_jarvis).set_probability_cutoff(212); // 0.83
|
||||||
id(mww_okay_nabu).set_probability_cutoff(143); // 0.56 -> 0.751 FAPH on DipCo
|
id(mww_hey_mycroft).set_probability_cutoff(230); // 0.90
|
||||||
id(mww_alexa).set_probability_cutoff(143); // 0.56 -> 0.751 FAPH on DipCo
|
id(mww_okay_nabu).set_probability_cutoff(143); // 0.56
|
||||||
}
|
id(mww_alexa).set_probability_cutoff(143); // 0.56
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user