feat(wyoming-openwakeword) add wyoming-openwakeword (#18250)

**Description**

Add
[wyoming-openwakeword](https://github.com/home-assistant/addons/blob/master/openwakeword/DOCS.md)
for Home Assistant.

I closed my old PR and opened this one because of a problem with signing
the CLA.

**⚙️ Type of change**

- [x] ⚙️ Feature/App addition
- [ ] 🪛 Bugfix
- [ ] ⚠️ Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] 🔃 Refactor of current code

**🧪 How Has This Been Tested?**

**📃 Notes:**

**✔️ Checklist:**

- [x] ⚖️ My code follows the style guidelines of this project
- [x] 👀 I have performed a self-review of my own code
- [ ] #️⃣ I have commented my code, particularly in hard-to-understand
areas
- [ ] 📄 I have made corresponding changes to the documentation
- [x] ⚠️ My changes generate no new warnings
- [ ] 🧪 I have added tests to this description that prove my fix is
effective or that my feature works
- [ ] ⬆️ I increased versions for any altered app according to semantic
versioning

** App addition**

If this PR is an app addition please make sure you have done the
following.

- [x] 🖼️ I have added an icon in the Chart's root directory called
`icon.png`

---

_Please don't blindly check all the boxes. Read them and only check
those that apply.
Those checkboxes are there for the reviewer to see what is this all
about and
the status of this PR with a quick glance._

---------

Signed-off-by: Xstar97TheNoob <9399967+xstar97@users.noreply.github.com>
Co-authored-by: Xstar97TheNoob <9399967+xstar97@users.noreply.github.com>
This commit is contained in:
marc-ruiedt 2024-03-01 14:23:44 +01:00 committed by GitHub
parent 5d3b33ecb7
commit a8fdb8bcf4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 290 additions and 0 deletions

View File

@ -0,0 +1,30 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl
# docs folder
/docs
# icon
icon.png

View File

@ -0,0 +1,3 @@
---
title: Changelog
---

View File

@ -0,0 +1,37 @@
annotations:
max_scale_version: 23.10.2
min_scale_version: 23.10.0
truecharts.org/SCALE-support: "true"
truecharts.org/category: home-automation
truecharts.org/max_helm_version: "3.14"
truecharts.org/min_helm_version: "3.12"
truecharts.org/train: incubator
apiVersion: v2
appVersion: 1.10.0
dependencies:
- name: common
version: 18.1.2
repository: oci://tccr.io/truecharts
condition: ""
alias: ""
tags: []
import-values: []
deprecated: false
description: The Wyoming integration of openWakeWord
home: https://truecharts.org/charts/incubator/wyoming-openwakeword
icon: https://truecharts.org/img/hotlink-ok/chart-icons/wyoming-openwakeword.png
keywords:
- wyoming-openwakeword
kubeVersion: ">=1.24.0-0"
maintainers:
- name: TrueCharts
email: info@truecharts.org
url: https://truecharts.org
name: wyoming-openwakeword
sources:
- https://github.com/home-assistant/addons/tree/master/openwakeword
- https://github.com/rhasspy/wyoming-openwakeword/
- https://github.com/truecharts/charts/tree/master/charts/incubator/wyoming-openwakeword
- https://hub.docker.com/r/rhasspy/wyoming-openwakeword
type: application
version: 0.0.1

View File

@ -0,0 +1,3 @@
---
title: README
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,162 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{workload}
# Include{workloadDeployment}
# Include{replicas1}
# Include{podSpec}
# Include{containerMain}
# Include{containerBasic}
# Include{containerAdvanced}
- variable: wyoming_openwakeword
group: App Configuration
label: OpenWakeWord Configuration
schema:
additional_attrs: true
type: dict
attrs:
- variable: model
label: Model
description: OpenWakeWord model that will be used for voice detection.
schema:
type: string
required: true
default: ok_nabu
enum:
- value: alexa
description: alexa
- value: hey_jarvis
description: hey jarvis
- value: hey_mycroft
description: hey mycroft
- value: hey_rhasspy
description: hey rhasspy
- value: ok_nabu
description: ok nabu
- value: melspectrogram
description: melspectrogram
- value: embedding_model
description: embedding model
- variable: preload_model
label: Preload model
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enabled
description: "A preloaded model argument will ensure the model is loaded into memory at start-up instead of when first requested."
schema:
type: boolean
default: true
- variable: debug
label: Debug
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enabled
description: "Enable debug logging. Useful for seeing satellite connections and each wake word detection in the logs."
schema:
type: boolean
default: false
- variable: custom_model
label: Custom model
schema:
additional_attrs: true
type: dict
attrs:
- variable: enabled
label: Enabled
description: |
By enabling this feature, you can specify the path to your own custom model.</br>
To access this custom model from the app, you should mount a host path volume.
schema:
type: boolean
default: true
show_subquestions_if: true
subquestions:
- variable: path
label: Path to custom model in app
description: |
The path to the custom model location in the container.
schema:
type: string
required: true
default: "/custom"
- variable: threshold
label: Threshold
description: "Wake word model threshold (0.0-1.0, default: 0.5)"
schema:
type: string
required: true
default: "0.5"
- variable: trigger_level
label: Trigger level
description: "Number of activations before detection (default: 1)"
schema:
type: int
required: true
default: 1
# Include{containerConfig}
# Include{serviceRoot}
# Include{serviceMain}
# Include{serviceSelectorLoadBalancer}
# Include{serviceSelectorExtras}
- variable: main
label: "Main Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 10400
required: true
# Include{serviceExpertRoot}
# Include{serviceExpert}
# Include{serviceList}
# Include{ingressRoot}
- variable: main
label: "Main Ingress"
schema:
additional_attrs: true
type: dict
attrs:
# Include{ingressDefault}
# Include{ingressAdvanced}
# Include{ingressList}
# Include{securityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 568
- variable: runAsGroup
label: "runAsGroup"
description: "The groupID of the user running the application"
schema:
type: int
default: 568
# Include{securityContextContainer}
# Include{securityContextAdvanced}
# Include{securityContextPod}
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{codeserver}
# Include{netshoot}
# Include{vpn}
# Include{documentation}

View File

@ -0,0 +1 @@
{{- include "tc.v1.common.lib.chart.notes" $ -}}

View File

@ -0,0 +1,21 @@
{{- define "wyoming-openwakeword.args" -}}
{{- $openwakeword := .Values.wyoming_openwakeword -}}
args:
- --model
- {{ $openwakeword.model | quote }}
{{- if $openwakeword.preload_model }}
- --preload-model
- {{ $openwakeword.model | quote }}
{{- end }}
{{- if $openwakeword.custom_model.path }}
- --custom-model-dir
- {{ $openwakeword.custom_model.path | quote }}
{{- end }}
{{- if $openwakeword.debug }}
- --debug
{{- end }}
- --threshold
- {{ $openwakeword.threshold | quote }}
- --trigger-level
- {{ $openwakeword.trigger_level | quote }}
{{- end -}}

View File

@ -0,0 +1,8 @@
{{/* Make sure all variables are set properly */}}
{{- include "tc.v1.common.loader.init" . }}
{{- $newArgs := (include "wyoming-openwakeword.args" . | fromYaml) }}
{{- $_ := set .Values.workload.main.podSpec.containers.main "args" $newArgs.args -}}
{{/* Render the templates */}}
{{ include "tc.v1.common.loader.apply" . }}

View File

@ -0,0 +1,25 @@
image:
repository: rhasspy/wyoming-openwakeword
pullPolicy: IfNotPresent
tag: 1.10.0@sha256:951b823c38403a9f10445a370d3dace3da4c38f64c6579dfbc5af0c10098f1b8
wyoming_openwakeword:
model: ok_nabu
preload_model: true
custom_model:
path: ""
threshold: "0.5"
trigger_level: 1
debug: false
service:
main:
ports:
main:
port: 10400
protocol: tcp
targetPort: 10400
portal:
open:
enabled: false