1
1
mirror of https://github.com/OpenVoiceOS/OpenVoiceOS synced 2025-02-10 00:40:43 +01:00

More work on the whole OS system

This commit is contained in:
j1nx 2024-09-26 10:53:16 +00:00
parent 2181fc8575
commit 27de8b9a68
126 changed files with 818 additions and 1375 deletions

@ -1 +1 @@
Subproject commit afbbc1095dc4c698774686cd17f03a20a0cf63c2
Subproject commit 686dd137614c776145b94d4ed98baafa3bf72a56

View File

@ -105,6 +105,7 @@ endmenu
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-bus-server/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-containers/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-dashboard/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-rust-messagebus/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-shell/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/ovos-splash/Config.in"
source "$BR2_EXTERNAL_OPENVOICEOS_PATH/package/pa-volume/Config.in"

View File

@ -1 +1 @@
numa=fake=4 numa_policy=interleave mitigations=off 8250.nr_uarts=1 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 dwc_otg.lpm_enable=0 acpi=off cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u
numa=fake=4 numa_policy=interleave mitigations=off 8250.nr_uarts=1 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 dwc_otg.lpm_enable=0 cgroup_enable=memory psi=1 usb-storage.quirks=174c:55aa:u,2109:0715:u,152d:0578:u,152d:0579:u,152d:1561:u,174c:0829:u,14b0:0206:u

View File

@ -11,7 +11,7 @@ set menu_color_highlight=white/red
load_env
default_cmdline="systemd.machine_id=$MACHINE_ID fsck.repair=yes zram.enabled=1 zram.num_devices=3 console=console consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 systemd.unified_cgroup_hierarchy=1 cgroup_enable=cpuset cgroup_memory=1 $boot_condition rootwait quiet toram"
default_cmdline="systemd.machine_id=$MACHINE_ID fsck.repair=yes zram.enabled=1 zram.num_devices=3 console=console consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 systemd.unified_cgroup_hierarchy=1 cgroup_enable=cpuset cgroup_memory=1 $boot_condition rootwait quiet"
file_env -f ($root)/cmdline.txt cmdline
regexp --set 1:boothd (.+),.+ ${root}

View File

@ -1,5 +1,5 @@
[Container]
AddDevice=/dev/gpiomem
AddDevice=/dev/ttyAMA0
AddDevice=/dev/spidev0.0
AddDevice=/dev/spidev0.1
AddDevice=-/dev/gpiomem
AddDevice=-/dev/ttyAMA0
AddDevice=-/dev/spidev0.0
AddDevice=-/dev/spidev0.1

View File

@ -1,5 +1,5 @@
[Container]
AddDevice=/dev/gpiomem
AddDevice=/dev/ttyAMA0
AddDevice=/dev/spidev0.0
AddDevice=/dev/spidev0.1
AddDevice=-/dev/gpiomem
AddDevice=-/dev/ttyAMA0
AddDevice=-/dev/spidev0.0
AddDevice=-/dev/spidev0.1

View File

@ -1,14 +0,0 @@
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-mk1.git
git+https://github.com/NeonGeckoCom/neon-phal-plugin-linear_led.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-gui-network-client.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-network-manager.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-wifi-setup.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-balena-wifi.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-sensors.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-connectivity-events.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-respeaker-2mic.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-respeaker-4mic.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-ipgeo.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-wallpaper-manager.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-oauth.git
git+https://github.com/OpenVoiceOS/ovos-PHAL-plugin-homeassistant.git

View File

@ -30,7 +30,7 @@ display_auto_detect=1
# Enable DRM VC4 V3D driver and setup the mode
# dtoverlay=vc4-fkms-v3d,cma-384
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=vc4-kms-v3d,cma-256
# hdmi_drive=2
# hdmi_group=2
# hdmi_mode=14
@ -40,7 +40,7 @@ max_framebuffers=2
# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem=256
#gpu_mem=256
# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
dtoverlay=miniuart-bt

View File

@ -31,13 +31,14 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,16d0ee22d2c0b32cc67db73ce03263b740bba2a7)/linux-16d0ee22d2c0b32cc67db73ce03263b740bba2a7.tar.gz"
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,d6a12dd8f4e9362f7dd355969dd046adc44b1f47)/linux-d6a12dd8f4e9362f7dd355969dd046adc44b1f47.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config"
BR2_LINUX_KERNEL_LZ4=y
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b broadcom/bcm2711-rpi-400 broadcom/bcm2711-rpi-cm4"
BR2_LINUX_KERNEL_DTB_OVERLAY_SUPPORT=y
BR2_LINUX_KERNEL_INSTALL_INTREE_OVERLAYS=y
BR2_LINUX_KERNEL_INSTALL_TARGET=y
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
@ -107,6 +108,8 @@ BR2_PACKAGE_EROFS_UTILS_LZMA=y
BR2_PACKAGE_EROFS_UTILS_EROFSFUSE=y
BR2_PACKAGE_FUSE_OVERLAYFS=y
BR2_PACKAGE_NTFS_3G=y
BR2_PACKAGE_GLMARK2=y
BR2_PACKAGE_KMSCUBE=y
BR2_PACKAGE_MESA3D=y
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
@ -129,7 +132,7 @@ BR2_PACKAGE_KBD=y
BR2_PACKAGE_PARTED=y
BR2_PACKAGE_SPI_TOOLS=y
BR2_PACKAGE_JIMTCL=y
BR2_PACKAGE_LUAJIT=y
BR2_PACKAGE_LUA=y
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON3_PY_PYC=y
# BR2_PACKAGE_PYTHON3_UNICODEDATA is not set
@ -159,7 +162,7 @@ BR2_PACKAGE_LIBNFS=y
BR2_PACKAGE_LIBSYSFS=y
BR2_PACKAGE_LOCKDEV=y
BR2_PACKAGE_PHYSFS=y
BR2_PACKAGE_JPEG=y
BR2_PACKAGE_WIREPLUMBER=y
BR2_PACKAGE_JITTERENTROPY_LIBRARY=y
BR2_PACKAGE_LIBAIO=y
BR2_PACKAGE_LIBGPIOD2=y
@ -246,9 +249,9 @@ BR2_PACKAGE_COREUTILS=y
BR2_PACKAGE_COREUTILS_INDIVIDUAL_BINARIES=y
BR2_PACKAGE_EFIBOOTMGR=y
BR2_PACKAGE_HTOP=y
BR2_PACKAGE_IOTOP=y
BR2_PACKAGE_NUMACTL=y
BR2_PACKAGE_PODMAN=y
BR2_PACKAGE_PROCPS_NG=y
BR2_PACKAGE_SHADOW=y
BR2_PACKAGE_SHADOW_SHADOWGRP=y
BR2_PACKAGE_SHADOW_ACCOUNT_TOOLS_SETUID=y
@ -310,11 +313,13 @@ BR2_PACKAGE_HOST_MKPASSWD=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_PKGCONF=y
BR2_PACKAGE_BTSPEAKER=y
BR2_PACKAGE_CK=y
BR2_PACKAGE_KSM_PRELOAD=y
BR2_PACKAGE_KSMTUNED=y
BR2_PACKAGE_NCPAMIXER=y
BR2_PACKAGE_OVOS_BUS_SERVER=y
BR2_PACKAGE_OVOS_CONTAINERS=y
BR2_PACKAGE_OVOS_CONTAINERS_ARCH="arm64"
BR2_PACKAGE_OVOS_CONTAINERS_GUI=y
BR2_PACKAGE_OVOS_RUST_MESSAGEBUS=y
BR2_PACKAGE_OVOS_SPLASH=y
BR2_PACKAGE_RESPEAKER=y
BR2_PACKAGE_RNNNOISE_LADSPA=y

View File

@ -10,7 +10,7 @@ image="$2"
dl_dir="$3"
dst_dir="$4"
image_name="docker.io/smartgic/${image}"
full_image_name="${image_name}:alpha"
full_image_name="${image_name}:0.1.0"
# Fetch image digest
image_digest=$(skopeo --override-arch "${arch}" inspect --retry-times=5 "docker://${full_image_name}" | jq -r '.Digest')

View File

@ -11,22 +11,16 @@ OVOS_CONTAINERS_SITE = $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/ovos-containers
OVOS_CONTAINERS_SITE_METHOD = local
#OVOS_CONTAINERS_DEPENDENCIES = host-skopeo host-podman host-jq
OVOS_CONTAINERS_IMAGES = ovos-phal \
ovos-messagebus \
OVOS_CONTAINERS_IMAGES = ovos-messagebus \
ovos-phal \
ovos-listener-dinkum \
ovos-audio \
ovos-core \
ovos-gui-websocket \
ovos-cli
ifeq ($(BR2_PACKAGE_OVOS_CONTAINERS_GUI),y)
OVOS_CONTAINERS_IMAGES += ovos-gui-shell
define OVOS_CONTAINERS_INSTALL_GUI_SERVICES
$(INSTALL) -D -m 644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/ovos-containers/ovos_gui.container \
$(TARGET_DIR)/home/ovos/.config/containers/systemd/ovos_gui.container
OVOS_CONTAINERS_POST_INSTALL_TARGET_HOOKS += OVOS_CONTAINERS_INSTALL_GUI_SERVICES
endef
endif
define OVOS_CONTAINERS_BUILD_CMDS

View File

@ -0,0 +1,9 @@
config BR2_PACKAGE_OVOS_RUST_MESSAGEBUS
bool "ovos-rust-messagebus"
depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
select BR2_PACKAGE_HOST_CARGO
help
This is a Rust implementation of the OpenVoiceOS (OVOS)
messagebus, providing a fast and efficient communication
backbone for OVOS components. Think of it as the "nervous system"
of the OVOS platform.

View File

@ -0,0 +1,19 @@
################################################################################
#
# ovos-rust-messagebus
#
################################################################################
OVOS_RUST_MESSAGEBUS_VERSION = 0.3.1
OVOS_RUST_MESSAGEBUS_SITE = $(call github,OscillateLabsLLC,ovos-rust-messagebus,v$(OVOS_RUST_MESSAGEBUS_VERSION))
OVOS_RUST_MESSAGEBUS_DEPENDENCIES = host-rustc host-pkgconf
OVOS_RUST_MESSAGEBUS_CARGO_ENV = PKG_CONFIG_ALLOW_CROSS=1
define OVOS_RUST_MESSAGEBUS_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/usr/local/bin
$(INSTALL) -D -m 0755 $(@D)/target/$(RUSTC_TARGET_NAME)/release/ovos_messagebus \
$(TARGET_DIR)/usr/local/bin/ovos_messagebus
endef
$(eval $(cargo-package))

View File

@ -11,9 +11,9 @@ RPI_BLUETOOTH_LICENSE_FILES = debian/copyright
define RPI_BLUETOOTH_INSTALL_TARGET_CMDS
$(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/ovos-hardware.target.wants
$(INSTALL) -m 0644 $(BR2_EXTERNAL_HASSOS_PATH)/package/rpi-bluetooth/hciuart.service $(TARGET_DIR)/usr/lib/systemd/system/
$(INSTALL) -m 0644 $(BR2_EXTERNAL_HASSOS_PATH)/package/pi-bluetooth/hcidisable.service $(TARGET_DIR)/usr/lib/systemd/system/
$(INSTALL) -m 0644 $(BR2_EXTERNAL_HASSOS_PATH)/package/rpi-bluetooth/bthelper@.service $(TARGET_DIR)/usr/lib/systemd/system/
$(INSTALL) -m 0644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/rpi-bluetooth/hciuart.service $(TARGET_DIR)/usr/lib/systemd/system/
$(INSTALL) -m 0644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/rpi-bluetooth/hcidisable.service $(TARGET_DIR)/usr/lib/systemd/system/
$(INSTALL) -m 0644 $(BR2_EXTERNAL_OPENVOICEOS_PATH)/package/rpi-bluetooth/bthelper@.service $(TARGET_DIR)/usr/lib/systemd/system/
$(INSTALL) -d $(TARGET_DIR)/usr/bin
$(INSTALL) -m 0755 $(@D)/usr/bin/btuart $(TARGET_DIR)/usr/bin/

View File

@ -1,30 +0,0 @@
From c240d177b5cdccdd0916c7920cfef78eec0f6015 Mon Sep 17 00:00:00 2001
From: j1nx <p.steenbergen@j1nx.nl>
Date: Mon, 29 Jul 2024 08:46:14 +0000
Subject: [PATCH 1/1] Do not replace and remove containers started by quadlet
files.
---
pkg/systemd/quadlet/quadlet.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/pkg/systemd/quadlet/quadlet.go b/pkg/systemd/quadlet/quadlet.go
index 329f3883b..f31a5acfe 100644
--- a/pkg/systemd/quadlet/quadlet.go
+++ b/pkg/systemd/quadlet/quadlet.go
@@ -547,10 +547,10 @@ func ConvertContainer(container *parser.UnitFile, names map[string]string, isUse
"--cidfile=%t/%N.cid",
// And replace any previous container with the same name, not fail
- "--replace",
+ //"--replace",
// On clean shutdown, remove container
- "--rm",
+ //"--rm",
)
handleLogDriver(container, ContainerGroup, podman)
--
2.34.1

View File

@ -56,21 +56,11 @@
}
},
"stt": {
"module": "ovos-stt-plugin-server",
"ovos-stt-plugin-server": {
"url": "https://fasterwhisper.ziggyai.online/stt"
},
"fallback_module": "ovos-stt-plugin-vosk",
"ovos-stt-plugin-vosk": {
"model": "http://alphacephei.com/vosk/models/vosk-model-small-en-us-0.15.zip"
}
"fallback_module": ""
},
"padatious": {
"regex_only": false
},
"g2p": {
"module": "ovos-g2p-plugin-mimic"
},
"Audio": {
"backends": {
"OCP": {
@ -79,7 +69,7 @@
"active": true,
"youtube_backend": "youtube-dl",
"ydl_backend": "auto",
"disable_mpris": true
"disable_mpris": false
},
"vlc": {
"type": "ovos_vlc",

View File

@ -1,136 +0,0 @@
# Real-time Client config file for PipeWire version "1.0.0" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/client-rt.conf.d/ for system-wide changes or in
# ~/.config/pipewire/client-rt.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# Uses realtime scheduling to boost the audio thread priorities
{ name = libpipewire-module-rt
args = {
#rt.prio = 88
#rt.time.soft = -1
#rt.time.hard = -1
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
]
filter.properties = {
#node.latency = 1024/48000
}
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
}
stream.rules = [
{ matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
#application.name = "pw-cat"
#node.name = "~Google Chrome$"
}
]
actions = {
update-props = {
#node.latency = 512/48000
}
}
}
]
alsa.properties = {
#alsa.deny = false
# ALSA params take a single value, an array [] of values
# or a range { min=.. max=... }
#alsa.access = [ MMAP_INTERLEAVED MMAP_NONINTERLEAVED RW_INTERLEAVED RW_NONINTERLEAVED ]
#alsa.format = [ FLOAT S32 S24 S24_3 S16 U8 ]
#alsa.rate = { min=1 max=384000 } # or [ 44100 48000 .. ]
#alsa.channels = { min=1 max=64 } # or [ 2 4 6 .. ]
#alsa.period-bytes = { min=128 max=2097152 } # or [ 128 256 1024 .. ]
#alsa.buffer-bytes = { min=256 max=4194304 } # or [ 256 512 4096 .. ]
#alsa.volume-method = cubic # linear, cubic
}
# client specific properties
alsa.rules = [
{ matches = [ { application.process.binary = "resolve" } ]
actions = {
update-props = {
alsa.buffer-bytes = 131072
}
}
}
]

View File

@ -1,86 +0,0 @@
# Client config file for PipeWire version "1.0.0" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/client.conf.d/ for system-wide changes or in
# ~/.config/pipewire/client.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
log.level = 0
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
#
# The native communication protocol.
{ name = libpipewire-module-protocol-native }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
]
filter.properties = {
#node.latency = 1024/48000
}
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
}

View File

@ -1,170 +0,0 @@
# PulseAudio config file for PipeWire version "1.0.0" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#log.level = 2
#default.clock.quantum-limit = 8192
}
context.spa-libs = {
audio.convert.* = audioconvert/libspa-audioconvert
support.* = support/libspa-support
}
context.modules = [
{ name = libpipewire-module-rt
args = {
nice.level = -19
#rt.prio = 88
rt.prio = 95
#rt.time.soft = -1
#rt.time.hard = -1
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
}
{ name = libpipewire-module-protocol-native }
{ name = libpipewire-module-client-node }
{ name = libpipewire-module-adapter }
{ name = libpipewire-module-metadata }
{ name = libpipewire-module-protocol-pulse
args = {
# contents of pulse.properties can also be placed here
# to have config per server.
}
}
]
# Extra scripts can be started here. Setup in default.pa can be moved in
# a script or in pulse.cmd below
context.exec = [
#{ path = "pactl" args = "load-module module-always-sink" }
#{ path = "pactl" args = "upload-sample my-sample.wav my-sample" }
#{ path = "/usr/bin/sh" args = "~/.config/pipewire/default.pw" }
]
# Extra commands can be executed here.
# load-module : loads a module with args and flags
# args = "<module-name> <module-args>"
# ( flags = [ nofail ] )
pulse.cmd = [
{ cmd = "load-module" args = "module-always-sink" flags = [ ] }
#{ cmd = "load-module" args = "module-switch-on-connect" }
#{ cmd = "load-module" args = "module-gsettings" flags = [ nofail ] }
]
stream.properties = {
#node.latency = 1024/48000
#node.autoconnect = true
#resample.quality = 4
#channelmix.normalize = false
#channelmix.mix-lfe = true
#channelmix.upmix = true
#channelmix.upmix-method = psd # none, simple
#channelmix.lfe-cutoff = 150
#channelmix.fc-cutoff = 12000
#channelmix.rear-delay = 12.0
#channelmix.stereo-widen = 0.0
#channelmix.hilbert-taps = 0
#dither.noise = 0
}
pulse.properties = {
# the addresses this server listens on
server.address = [
"unix:native"
#"unix:/tmp/something" # absolute paths may be used
#"tcp:4713" # IPv4 and IPv6 on all addresses
#"tcp:[::]:9999" # IPv6 on all addresses
#"tcp:127.0.0.1:8888" # IPv4 on a single address
#
#{ address = "tcp:4713" # address
# max-clients = 64 # maximum number of clients
# listen-backlog = 32 # backlog in the server listen queue
# client.access = "restricted" # permissions for clients
#}
]
#server.dbus-name = "org.pulseaudio.Server"
#pulse.min.req = 128/48000 # 2.7ms
#pulse.default.req = 960/48000 # 20 milliseconds
#pulse.min.frag = 128/48000 # 2.7ms
#pulse.default.frag = 96000/48000 # 2 seconds
#pulse.default.tlength = 96000/48000 # 2 seconds
#pulse.min.quantum = 128/48000 # 2.7ms
#pulse.idle.timeout = 0 # don't pause after underruns
#pulse.default.format = F32
#pulse.default.position = [ FL FR ]
# These overrides are only applied when running in a vm.
vm.overrides = {
pulse.min.quantum = 1024/48000 # 22ms
}
}
# client/stream specific properties
pulse.rules = [
{
matches = [
{
# all keys must match the value. ! negates. ~ starts regex.
#client.name = "Firefox"
#application.process.binary = "teams"
#application.name = "~speech-dispatcher.*"
}
]
actions = {
update-props = {
#node.latency = 512/48000
}
# Possible quirks:"
# force-s16-info forces sink and source info as S16 format
# remove-capture-dont-move removes the capture DONT_MOVE flag
# block-source-volume blocks updates to source volume
# block-sink-volume blocks updates to sink volume
#quirks = [ ]
}
}
{
# skype does not want to use devices that don't have an S16 sample format.
matches = [
{ application.process.binary = "teams" }
{ application.process.binary = "teams-insiders" }
{ application.process.binary = "skypeforlinux" }
]
actions = { quirks = [ force-s16-info ] }
}
{
# firefox marks the capture streams as don't move and then they
# can't be moved with pavucontrol or other tools.
matches = [ { application.process.binary = "firefox" } ]
actions = { quirks = [ remove-capture-dont-move ] }
}
{
# speech dispatcher asks for too small latency and then underruns.
matches = [ { application.name = "~speech-dispatcher.*" } ]
actions = {
update-props = {
pulse.min.req = 512/48000 # 10.6ms
pulse.min.quantum = 512/48000 # 10.6ms
pulse.idle.timeout = 5 # pause after 5 seconds of underrun
}
}
}
#{
# matches = [ { application.process.binary = "Discord" } ]
# actions = { quirks = [ block-source-volume ] }
#}
]

View File

@ -1,318 +0,0 @@
# Daemon config file for PipeWire version "1.0.0" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
#
context.properties = {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
#default.clock.rate = 48000
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
#default.clock.max-quantum = 2048
#default.clock.quantum-limit = 8192
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
#settings.check-quantum = false
#settings.check-rate = false
#
# These overrides are only applied when running in a vm.
vm.overrides = {
default.clock.min-quantum = 1024
}
# keys checked below to disable module loading
module.x11.bell = true
# enables autoloading of access module, when disabled an alternative
# access module needs to be loaded.
module.access = true
# enables autoloading of module-jackdbus-detect
module.jackdbus-detect = true
}
context.spa-libs = {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
avb.* = avb/libspa-avb
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
}
context.modules = [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
# If condition is given, the module is loaded only when the context
# properties all match the match rules.
#
# Uses realtime scheduling to boost the audio thread priorities. This uses
# RTKit if the user doesn't have permission to use regular realtime
# scheduling. You can also clamp utilisation values to improve scheduling
# on embedded and heterogeneous systems, e.g. Arm big.LITTLE devices.
{ name = libpipewire-module-rt
args = {
nice.level = -19
rt.prio = 95
#rt.time.soft = -1
#rt.time.hard = -1
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native
args = {
# List of server Unix sockets, and optionally permissions
#sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ]
}
}
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# Socket-specific access permissions
#access.socket = { pipewire-0 = "default", pipewire-0-manager = "unrestricted" }
# Deprecated legacy mode (not socket-based),
# for now enabled by default if access.socket is not specified
#access.legacy = true
}
condition = [ { module.access = true } ]
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
# Use libcanberra to play X11 Bell
{ name = libpipewire-module-x11-bell
args = {
#sink.name = ""
#sample.name = "bell-window-system"
#x11.display = null
#x11.xauthority = null
}
flags = [ ifexists nofail ]
condition = [ { module.x11.bell = true } ]
}
{ name = libpipewire-module-jackdbus-detect
args = {
#jack.library = libjack.so.0
#jack.server = null
#jack.client-name = PipeWire
#jack.connect = true
#tunnel.mode = duplex # source|sink|duplex
source.props = {
#audio.channels = 2
#midi.ports = 1
#audio.position = [ FL FR ]
# extra sink properties
}
sink.props = {
#audio.channels = 2
#midi.ports = 1
#audio.position = [ FL FR ]
# extra sink properties
}
}
flags = [ ifexists nofail ]
condition = [ { module.jackdbus-detect = true } ]
}
]
context.objects = [
#{ factory = <factory-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
# If condition is given, the object is created only when the context properties
# all match the match rules.
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc "Spa:Pod:Object:Param:Props:patternType" = 1 } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-driver"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
priority.driver = 20000
#clock.id = monotonic # realtime | tai | monotonic-raw | boottime
#clock.name = "clock.system.monotonic"
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 19000
node.group = pipewire.freewheel
node.freewheel = true
}
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# }
#}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# api.alsa.period-size = 1024
# api.alsa.headroom = 0
# api.alsa.disable-mmap = false
# api.alsa.disable-batch = false
# audio.format = "S16LE"
# audio.rate = 48000
# audio.channels = 2
# audio.position = "FL,FR"
# }
#}
# Use the metadata factory to create metadata and some default values.
#{ factory = metadata
# args = {
# metadata.name = my-metadata
# metadata.values = [
# { key = default.audio.sink value = { name = somesink } }
# { key = default.audio.source value = { name = somesource } }
# ]
# }
#}
]
context.exec = [
#{ path = <program-name>
# ( args = "<arguments>" )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Execute the given program with arguments.
# If condition is given, the program is executed only when the context
# properties all match the match rules.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = ""
# condition = [ { exec.session-manager = null } { exec.session-manager = true } ] }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf"
# condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] }
]

View File

@ -1,33 +0,0 @@
context.modules = [
{ name = libpipewire-module-filter-chain
args = {
node.name = "denoised_source"
node.description = "Noise Canceling source"
media.name = "Noise Canceling source"
filter.graph = {
nodes = [
{
type = ladspa
name = rnnoise
plugin = /usr/lib/ladspa/librnnoise_ladspa.so
label = noise_suppressor_stereo
control = {
"VAD Threshold (%)" 85.0
"VAD Grace Period (ms)" = 200
"Retroactive VAD Grace (ms)" = 0
}
}
]
}
capture.props = {
node.name = "openvoiceos_mic.denoised"
node.passive = true
node.name = "capture.rnnoise_source"
}
playback.props = {
node.name = "openvoiceos_denoised_mic"
media.class = Audio/Source
}
}
}
]

View File

@ -1,15 +1,4 @@
[Service]
Environment=QT_QPA_PLATFORM=eglfs
Environment=QT_QPA_EGLFS_KMS_ATOMIC=1
Environment=QT_QPA_PLATFORMTHEME=qt5ct
Environment=QT_PLUGIN_PATH=/usr/lib/qt/plugins:/usr/lib/plugins:/usr/lib/plugins/kf5
Environment=QT_LOGGING_RULES='*=false'
Environment=QT_FILE_SELECTORS=ovos
Environment=QT_FONT_DPI=120
Environment=QT_IM_MODULE=qtvirtualkeyboard
Environment=QT_QUICK_CONTROLS_STYLE=OpenVoiceStyle
Environment=XDG_CURRENT_DESKTOP=kde
Environment=QML2_IMPORT_PATH=/usr/lib/qml
LimitRTPRIO=95
LimitNICE=-19
LimitMEMLOCK=4194304

View File

@ -0,0 +1,3 @@
# Create ${runstatedir}/dbus/containers owned by the system bus user.
# org.freedesktop.DBus.Containers1 uses this to create sockets.
d /run/dbus/containers 0755 dbus - - -

View File

@ -0,0 +1,2 @@
d /var/lib/systemd/linger 0755 - - -
f /var/lib/systemd/linger/ovos 0755 - - -

View File

@ -13,5 +13,3 @@ QT_IM_MODULE=qtvirtualkeyboard
QT_QUICK_CONTROLS_STYLE=OpenVoiceStyle
XDG_CURRENT_DESKTOP=kde
QML2_IMPORT_PATH=/usr/lib/qml
#QT_LOGGING_RULES=*=false
MYCROFT_LOOSE_REQUIREMENT=true

View File

@ -1,25 +0,0 @@
[Unit]
Description=Hivemind CLI
After=local-fs.target
After=network-online.target
Wants=network-online.target
After=hivemind-listener.service
Wants=hivemind-listener.service
[Container]
ContainerName=hivemind-cli
Image=docker.io/smartgic/hivemind-cli:alpha
Pull=never
AutoUpdate=registry
LogDriver=journald
HostName=hivemind-cli
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
Volume=%h/hivemind/config:/home/hivemind/.config/hivemind:z
Volume=%h/hivemind/share:/home/hivemind/.local/share/hivemind:z
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -1,4 +0,0 @@
[Image]
Image=docker.io/smartgic/hivemind-cli:alpha
ImageTag=hivemind-cli
#TLSVerify=false

View File

@ -1,25 +0,0 @@
[Unit]
Description=Hivemind Listener
After=local-fs.target
After=network-online.target
Wants=network-online.target
After=ovos-core.service
Wants=ovos-core.service
[Container]
ContainerName=hivemind-listener
Image=docker.io/smartgic/hivemind-listener:alpha
Pull=never
AutoUpdate=registry
LogDriver=journald
HostName=hivemind-listener
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
Volume=%h/hivemind/config:/home/hivemind/.config/hivemind:z
Volume=%h/hivemind/share:/home/hivemind/.local/share/hivemind:z
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -1,2 +0,0 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +0,0 @@
[Image]
Image=docker.io/smartgic/hivemind-listener:alpha
ImageTag=hivemind-listener
#TLSVerify=false

View File

@ -3,36 +3,35 @@ Description=OpenVoiceOS Audio Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
#Wants=ovos-bus-server.service
#After=ovos-bus-server.service
Wants=ovos-messagebus.service
After=ovos-messagebus.service
Wants=ovos-phal.service
Wants=pipewire.service
After=ovos-bus-server.service
Wants=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
After=ovos-phal.service
Wants=ovos-phal.service
[Container]
ContainerName=ovos-audio
Image=docker.io/smartgic/ovos-audio:alpha
Image=docker.io/smartgic/ovos-audio:0.1.0
Pull=never
Notify=healthy
#Notify=healthy
AutoUpdate=registry
LogDriver=journald
HostName=ovos-audio
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
Volume=%h/ovos/config:/home/ovos/.config/mycroft:z
Volume=%h/ovos/tmp:/tmp:z
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=%t/bus:/run/user/1000/bus:ro
Volume=ovos_local_state:/home/ovos/.local/state/mycroft:z
Volume=ovos_tts_cache:/home/ovos/.cache/mycroft:z
Volume=ovos_venv_audio:/home/ovos/.venv
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/.local/share/mycroft:/home/ovos/.local/share/mycroft
Volume=%h/.cache/mycroft:/home/ovos/.cache
Volume=%h/ovos/tmp:/tmp:z,U
Volume=%t:/run/user/1000
Volume=ovos_venv_audio:/home/ovos/.venv:z,U
[Service]
TimeoutStartSec=900

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-audio:alpha
Image=docker.io/smartgic/ovos-audio:0.0.8a
ImageTag=ovos-audio
#TLSVerify=false

View File

@ -3,21 +3,28 @@ Description=OpenVoiceOS CLI
After=local-fs.target
After=network-online.target
Wants=network-online.target
After=ovos-bus-server.service
Wants=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
[Container]
ContainerName=ovos-cli
Image=docker.io/smartgic/ovos-cli:alpha
Pull=never
Image=docker.io/smartgic/ovos-cli:0.1.0
#Pull=never
AutoUpdate=registry
LogDriver=journald
HostName=ovos-cli
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
Volume=%h/ovos/config:/home/ovos/.config/mycroft:z
Volume=%h/ovos/tmp:/tmp:z
Volume=ovos_local_state:/home/ovos/.local/state/mycroft:z
EnvironmentFile=%h/.config/containers/env
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/.local/share/mycroft:/home/ovos/.local/share/mycroft
Volume=%h/.cache:/home/ovos/.cache
Volume=%h/ovos/tmp:/tmp:z,U
Volume=ovos_venv_cli:/home/ovos/.venv:z,U
[Service]
TimeoutStartSec=900

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-cli:alpha
Image=docker.io/smartgic/ovos-cli:0.0.8a
ImageTag=ovos-cli
#TLSVerify=false

View File

@ -3,36 +3,35 @@ Description=OpenVoiceOS Core Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
#Wants=ovos-bus-server.service
#After=ovos-bus-server.service
Wants=ovos-messagebus.service
After=ovos-messagebus.service
Wants=ovos-phal.service
Wants=pipewire.service
After=ovos-bus-server.service
Wants=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
After=ovos-phal.service
Wants=ovos-phal.service
[Container]
ContainerName=ovos-core
Image=docker.io/smartgic/ovos-core:alpha
Image=docker.io/smartgic/ovos-core:0.1.0
Pull=never
Notify=healthy
#Notify=healthy
AutoUpdate=registry
LogDriver=journald
HostName=ovos-core
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
Volume=%h/ovos/config:/home/ovos/.config/mycroft:z
Volume=%h/ovos/tmp:/tmp:z
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=ovos_local_state:/home/ovos/.local/state/mycroft:z
Volume=ovos_nltk:/home/ovos/nltk_data:z
Volume=ovos_venv_core:/home/ovos/.venv
Volume=%h/ovos/share:/home/ovos/.local/share/mycroft:z
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/.local/share/mycroft:/home/ovos/.local/share/mycroft
Volume=%h/.cache:/home/ovos/.cache
Volume=%h/ovos/tmp:/tmp:z,U
Volume=%t:/run/user/1000
Volume=%h/nltk_data:/home/ovos/nltk_data
Volume=ovos_venv_core:/home/ovos/.venv:z,U
[Service]
TimeoutStartSec=900

View File

@ -0,0 +1,5 @@
[Container]
AddDevice=-/dev/gpiomem
AddDevice=-/dev/ttyAMA0
AddDevice=-/dev/spidev0.0
AddDevice=-/dev/spidev0.1

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-core:alpha
Image=docker.io/smartgic/ovos-core:0.0.8a
ImageTag=ovos-core
#TLSVerify=false

View File

@ -1,20 +1,21 @@
[Unit]
Description=OpenVoiceOS GUI Service
After=local-fs.target
After=network.target
#After=local-fs.target
#After=
#After=network-online.target
#Wants=network-online.target
#Wants=pipewire.service
#After=pipewire.service
#Wants=ovos-bus-server.service
#After=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
#Wants=ovos-phal.service
#After=ovos-phal.service
#Wants=ovos-gui-websocket.service
#After=ovos-gui-websocket.service
[Container]
ContainerName=ovos-gui-shell
Image=docker.io/smartgic/ovos-gui-shell:alpha
Image=docker.io/smartgic/ovos-gui-shell:0.1.0
Pull=never
AutoUpdate=registry
LogDriver=journald
@ -22,18 +23,18 @@ HostName=ovos-gui-shell
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
AddDevice=/dev/dri
AddDevice=/dev/input
Volume=%h/ovos/config:/home/ovos/.config/mycroft:z
Volume=%h/ovos/tmp:/tmp:z
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=%t/bus:/run/user/1000/bus:ro
Volume=%h/ovos/share:/home/ovos/.local/share/mycroft:z
Volume=ovos_gui_files:/home/ovos/.cache/gui_files:z
Volume=/run/udev/data:/run/udev/data:ro
AddDevice=-/dev/snd
AddDevice=-/dev/dri
AddDevice=-/dev/input
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/.local/share/mycroft:/home/ovos/.local/share/mycroft
Volume=%h/.cache:/home/ovos/.cache
Volume=%h/ovos/tmp:/tmp:z,U
Volume=%t:/run/user/1000
Volume=/run/dbus:/run/dbus
Volume=/run/udev:/run/udev:ro
[Service]
TimeoutStartSec=900

View File

@ -0,0 +1,2 @@
[Container]
AddDevice=/dev/vchiq

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-gui-shell:alpha
Image=docker.io/smartgic/ovos-gui-shell:0.0.8a
ImageTag=ovos-gui-shell
#TLSVerify=false

View File

@ -0,0 +1,32 @@
[Unit]
Description=OpenVoiceOS GUI Websocket Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
After=ovos-bus-server.service
Wants=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
[Container]
ContainerName=ovos-gui-websocket
Image=docker.io/smartgic/ovos-gui-websocket:0.1.0
Pull=never
#Notify=healthy
AutoUpdate=registry
LogDriver=journald
HostName=ovos-gui-websocket
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
EnvironmentFile=%h/.config/containers/env
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/.local/share/mycroft:/home/ovos/.local/share/mycroft
Volume=%h/.cache:/home/ovos/.cache
Volume=%h/ovos/tmp:/tmp:z,U
Volume=ovos_venv_guibus:/home/ovos/.venv:z,U
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -0,0 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-gui-websocket:0.0.8a
ImageTag=ovos-gui-websocket
#TLSVerify=false

View File

@ -3,37 +3,37 @@ Description=OpenVoiceOS Dinkum Listener Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
#Wants=ovos-bus-server.service
#After=ovos-bus-server.service
Wants=ovos-messagebus.service
After=ovos-messagebus.service
Wants=ovos-phal.service
Wants=pipewire.service
After=ovos-bus-server.service
Wants=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
After=ovos-phal.service
Wants=ovos-phal.service
[Container]
ContainerName=ovos-listener-dinkum
Image=docker.io/smartgic/ovos-listener-dinkum:alpha
Image=docker.io/smartgic/ovos-listener-dinkum:0.1.0
Pull=never
Notify=healthy
#Notify=healthy
AutoUpdate=registry
LogDriver=journald
HostName=ovos-listener-dinkum
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
Volume=%h/ovos/config:/home/ovos/.config/mycroft:ro,z
Volume=%h/ovos/tmp:/tmp:z
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=ovos_listener_records:/home/ovos/.local/share/mycroft/listener:z
Volume=ovos_local_state:/home/ovos/.local/state/mycroft:z
Volume=ovos_models:/home/ovos/.local/share/precise-lite
Volume=ovos_vosk:/home/ovos/.local/share/vosk
Volume=ovos_venv_listener:/home/ovos/.venv
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/.local/share/mycroft:/home/ovos/.local/share/mycroft
Volume=%h/.local/share/precise-lite:/home/ovos/.local/share/precise-lite
Volume=%h/.local/share/vosk:/home/ovos/.local/share/vosk
Volume=%h/.cache:/home/ovos/.cache
Volume=%h/ovos/tmp:/tmp:z,U
Volume=%t:/run/user/1000
Volume=ovos_venv_listener:/home/ovos/.venv:z,U
[Service]
TimeoutStartSec=900

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-listener-dinkum:alpha
Image=docker.io/smartgic/ovos-listener:0.0.8a
ImageTag=ovos-listener-dinkum
#TLSVerify=false

View File

@ -6,7 +6,7 @@ Wants=network-online.target
[Container]
ContainerName=ovos-messagebus
Image=docker.io/smartgic/ovos-messagebus:alpha
Image=docker.io/smartgic/ovos-messagebus:0.1.0
Pull=never
AutoUpdate=registry
LogDriver=journald
@ -14,10 +14,12 @@ HostName=ovos-messagebus
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
Volume=%h/ovos/config:/home/ovos/.config/mycroft:ro,z
Volume=ovos_local_state:/home/ovos/.local/state/mycroft:z
Volume=%h/ovos/tmp:/tmp:z
EnvironmentFile=%h/.config/containers/env
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/ovos/tmp:/tmp:z,U
Volume=%h/.cache:/home/ovos/.cache
Volume=ovos_venv_messagebus:/home/ovos/.venv:z,U
[Service]
TimeoutStartSec=900

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-messagebus:alpha
Image=docker.io/smartgic/ovos-messagebus:0.0.8a
ImageTag=ovos-messagebus
#TLSVerify=false

View File

@ -3,32 +3,34 @@ Description=OpenVoiceOS PHAL Service
After=local-fs.target
After=network-online.target
Wants=network-online.target
Wants=pipewire.service
After=pipewire.service
#Wants=ovos-bus-server.service
#After=ovos-bus-server.service
Wants=ovos-messagebus.service
After=ovos-messagebus.service
Wants=pipewire.service
After=ovos-bus-server.service
Wants=ovos-bus-server.service
#Wants=ovos-messagebus.service
#After=ovos-messagebus.service
[Container]
ContainerName=ovos-phal
Image=docker.io/smartgic/ovos-phal:alpha
Image=docker.io/smartgic/ovos-phal:0.1.0
Pull=never
Notify=healthy
#Notify=healthy
AutoUpdate=registry
LogDriver=journald
HostName=ovos-phal
Network=host
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
EnvironmentFile=%h/.config/containers/env
AddDevice=/dev/snd
Volume=%h/ovos/config:/home/ovos/.config/mycroft:z
Volume=ovos_local_state:/home/ovos/.local/state/mycroft:z
Volume=%h/ovos/tmp:/tmp:z
Volume=%t/pipewire-0:/run/user/1000/pipewire-0:ro
Volume=ovos_venv_phal:/home/ovos/.venv
AddDevice=-/dev/snd
Volume=%h/.config/mycroft:/home/ovos/.config/mycroft
Volume=%h/.local/state/mycroft:/home/ovos/.local/state/mycroft
Volume=%h/ovos/tmp:/tmp:z,U
Volume=/run/dbus:/run/dbus
Volume=/run/udev:/run/udev:ro
Volume=%t:/run/user/1000
Volume=ovos_venv_phal:/home/ovos/.venv:z,U
Volume=%h/.cache:/home/ovos/.cache
[Service]
TimeoutStartSec=900

View File

@ -0,0 +1,5 @@
[Container]
AddDevice=-/dev/gpiomem
AddDevice=-/dev/ttyAMA0
AddDevice=-/dev/spidev0.0
AddDevice=-/dev/spidev0.1

View File

@ -0,0 +1,2 @@
[Install]
WantedBy=multi-user.target default.target

View File

@ -1,2 +1,2 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro,z
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +1,4 @@
[Image]
Image=docker.io/smartgic/ovos-phal:alpha
Image=docker.io/smartgic/ovos-phal:0.0.8a
ImageTag=ovos-phal
#TLSVerify=false

View File

@ -1,26 +0,0 @@
[Unit]
Description=OpenVoiceOS TTS Piper Server
After=local-fs.target
After=network-online.target
Wants=network-online.target
[Container]
ContainerName=ovos-tts-server-piper
Image=docker.io/smartgic/ovos-tts-server-piper:alpha
Pull=never
AutoUpdate=registry
LogDriver=journald
HostName=ovos-tts-server-piper
Network=host
PublishPort=8089-9666
Timezone=local
UserNS=keep-id:uid=%U,gid=%G
SecurityLabelDisable=true
EnvironmentFile=%h/.config/containers/env
Volume=%h/ovos/config:/home/ovos/.config/mycroft:ro,z
Volume=ovos_tts_piper_cache:/home/ovos/.local/share/piper_tts
Volume=ovos_tts_piper_gradio_cache:/home/ovos/gradio_cached_examples
[Service]
TimeoutStartSec=900
Restart=always

View File

@ -1,2 +0,0 @@
[Container]
Volume=/etc/mycroft/mycroft.conf:/etc/mycroft/mycroft.conf:ro

View File

@ -1,4 +0,0 @@
[Image]
Image=docker.io/smartgic/ovos-tts-server-piper:alpha
ImageTag=ovos-tts-server-piper
#TLSVerify=false

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_listener_records

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_local_state

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_models

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_nltk

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_tts_cache

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_tts_piper_cache

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_tts_piper_gradio_cache

View File

@ -0,0 +1,5 @@
[Volume]
User=ovos
Group=ovos
Copy=true
Label=name=ovos_venv_cli

View File

@ -0,0 +1,5 @@
[Volume]
User=ovos
Group=ovos
Copy=true
Label=name=ovos_venv_guibus

View File

@ -0,0 +1,5 @@
[Volume]
User=ovos
Group=ovos
Copy=true
Label=name=ovos_venv_messagebus

View File

@ -1,4 +0,0 @@
[Volume]
User=ovos
Group=ovos
Label=name=ovos_vosk

View File

@ -0,0 +1,6 @@
ovos-tts-plugin-server>=0.0.2, <1.0.0
ovos_audio_plugin_simple>=0.1.0, <1.0.0
ovos-audio-plugin-mpv>=0.0.1, <1.0.0
ovos-media-plugin-spotify>=0.2.3, <1.0.0
ovos-media-plugin-chromecast>=0.1.0, <1.0.0
ovos_plugin_common_play[extractors]>=0.0.7, <2.0.0

View File

@ -0,0 +1,9 @@
ovos-backend-client>=0.1.0,<2.0.0
ovos-stt-plugin-server>=0.0.3,<1.0.0
ovos-stt-plugin-chromium>=0.0.1,<1.0.0
ovos-stt-plugin-vosk>=0.0.1,<1.0.0
ovos-vad-plugin-noise>=0.1.0,<1.0.0
ovos-microphone-plugin-alsa>=0.0.0,<1.0.0
ovos-microphone-plugin-sounddevice>=0.0.0,<1.0.0
ovos-ww-plugin-precise-lite>=0.1,<1.0.0
ovos-ww-plugin-vosk>=0.1,<1.0.0

View File

@ -0,0 +1,53 @@
{
"PHAL": {
"ovos-PHAL-plugin-wifi-setup": {
"module": "ovos-PHAL-plugin-wifi-setup",
"lang": "en-us",
"secondary_langs": [],
"system_unit": "metric",
"time_format": "half",
"date_format": "MDY",
"opt_in": false,
"confirm_listening": true,
"ready_settings": [
"skills"
],
"ignore_logs": [
"enclosure.mouth.viseme",
"enclosure.mouth.display"
],
"enable_old_audioservice": true,
"debug": false,
"play_wav_cmdline": "pw-play %1",
"play_mp3_cmdline": "pw-play %1",
"log_level": "INFO",
"log_dir": "/var/log/mycroft",
"first_boot": false
},
"ovos-PHAL-plugin-wallpaper-manager": {
"module": "ovos-PHAL-plugin-wallpaper-manager",
"lang": "en-us",
"secondary_langs": [],
"system_unit": "metric",
"time_format": "half",
"date_format": "MDY",
"opt_in": false,
"confirm_listening": true,
"ready_settings": [
"skills"
],
"ignore_logs": [
"enclosure.mouth.viseme",
"enclosure.mouth.display"
],
"enable_old_audioservice": true,
"debug": false,
"play_wav_cmdline": "pw-play %1",
"play_mp3_cmdline": "pw-play %1",
"log_level": "INFO",
"log_dir": "/var/log/mycroft",
"selected_provider": "skill-ovos-homescreen.openvoiceos",
"selected_wallpaper": "/home/ovos/.venv/lib/python3.11/site-packages/skill_ovos_homescreen/ui/wallpapers/default.jpg"
}
}
}

View File

@ -0,0 +1,9 @@
ovos-phal-plugin-ipgeo>=0.1.0,<1.0.0
ovos-PHAL-plugin-connectivity-events>=0.0.1,<1.0.0
ovos-PHAL-plugin-oauth>=0.0.1,<1.0.0
ovos-PHAL-plugin-wifi-setup>=1.0.0,<2.0.0
ovos-phal-plugin-alsa>=0.0.1,<1.0.0
ovos-phal-plugin-system>=0.1.0,<1.0.0
ovos-PHAL-plugin-network-manager>=0.0.1,<2.0.0
ovos-PHAL-plugin-wallpaper-manager>=0.0.1,<1.0.0
ovos-PHAL-plugin-hotkeys>=0.0.0,<1.0.0

View File

@ -0,0 +1,27 @@
ovos-skill-fallback-unknown>=0.0.4,<1.0.0
ovos-skill-alerts>=0.0.1,<1.0.0
ovos-skill-personal>=0.0.4,<1.0.0
ovos-skill-date-time>=0.2.3,<1.0.0
ovos-skill-hello-world>=0.0.4,<1.0.0
skill-wordnet>=0.0.1,<1.0.0
ovos-skill-spelling>=0.1.0,<1.0.0
ovos-skill-boot-finished>=0.1.0,<1.0.0
ovos-skill-audio-recording>=0.1.0,<1.0.0
ovos-skill-dictation>=0.1.0,<1.0.0
ovos-skill-parrot>=0.0.1,<1.0.0
ovos-skill-volume>=0.0.2,<1.0.0
ovos-skill-naptime>=0.2.3,<1.0.0
ovos-skill-homescreen>=0.0.3,<1.0.0
ovos-skill-weather>=0.0.1,<1.0.0
skill-ddg>=0.0.2,<1.0.0
skill-wolfie>=0.2.0,<1.0.0
ovos-skill-wikipedia>=0.5.0,<1.0.0
skill-ovos-fallback-chatgpt>=0.0.2,<1.0.0
ovos-skill-wikihow>=0.2.0,<1.0.0
ovos-skill-speedtest>=0.1.0,<1.0.0
ovos-skill-ip>=0.1.0,<1.0.0
ovos-skill-somafm>=0.0.2,<1.0.0
skill-news>=0.0.4,<1.0.0
ovos-skill-pyradios>=0.1.0,<1.0.0
ovos-skill-local-media>=0.2.0,<1.0.0
ovos-skill-youtube-music>=0.1.1,<1.0.0

View File

@ -0,0 +1,9 @@
US English model for mobile Vosk applications
Copyright 2020 Alpha Cephei Inc
Accuracy: 10.38 (tedlium test) 9.85 (librispeech test-clean)
Speed: 0.11xRT (desktop)
Latency: 0.15s (right context)

View File

@ -0,0 +1,7 @@
--sample-frequency=16000
--use-energy=false
--num-mel-bins=40
--num-ceps=40
--low-freq=20
--high-freq=7600
--allow-downsample=true

View File

@ -0,0 +1,10 @@
--min-active=200
--max-active=3000
--beam=10.0
--lattice-beam=2.0
--acoustic-scale=1.0
--frame-subsampling-factor=3
--endpoint.silence-phones=1:2:3:4:5:6:7:8:9:10
--endpoint.rule2.min-trailing-silence=0.5
--endpoint.rule3.min-trailing-silence=0.75
--endpoint.rule4.min-trailing-silence=1.0

View File

@ -0,0 +1,17 @@
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031

View File

@ -0,0 +1,166 @@
1 nonword
2 begin
3 end
4 internal
5 singleton
6 nonword
7 begin
8 end
9 internal
10 singleton
11 begin
12 end
13 internal
14 singleton
15 begin
16 end
17 internal
18 singleton
19 begin
20 end
21 internal
22 singleton
23 begin
24 end
25 internal
26 singleton
27 begin
28 end
29 internal
30 singleton
31 begin
32 end
33 internal
34 singleton
35 begin
36 end
37 internal
38 singleton
39 begin
40 end
41 internal
42 singleton
43 begin
44 end
45 internal
46 singleton
47 begin
48 end
49 internal
50 singleton
51 begin
52 end
53 internal
54 singleton
55 begin
56 end
57 internal
58 singleton
59 begin
60 end
61 internal
62 singleton
63 begin
64 end
65 internal
66 singleton
67 begin
68 end
69 internal
70 singleton
71 begin
72 end
73 internal
74 singleton
75 begin
76 end
77 internal
78 singleton
79 begin
80 end
81 internal
82 singleton
83 begin
84 end
85 internal
86 singleton
87 begin
88 end
89 internal
90 singleton
91 begin
92 end
93 internal
94 singleton
95 begin
96 end
97 internal
98 singleton
99 begin
100 end
101 internal
102 singleton
103 begin
104 end
105 internal
106 singleton
107 begin
108 end
109 internal
110 singleton
111 begin
112 end
113 internal
114 singleton
115 begin
116 end
117 internal
118 singleton
119 begin
120 end
121 internal
122 singleton
123 begin
124 end
125 internal
126 singleton
127 begin
128 end
129 internal
130 singleton
131 begin
132 end
133 internal
134 singleton
135 begin
136 end
137 internal
138 singleton
139 begin
140 end
141 internal
142 singleton
143 begin
144 end
145 internal
146 singleton
147 begin
148 end
149 internal
150 singleton
151 begin
152 end
153 internal
154 singleton
155 begin
156 end
157 internal
158 singleton
159 begin
160 end
161 internal
162 singleton
163 begin
164 end
165 internal
166 singleton

View File

@ -0,0 +1,3 @@
[
1.682383e+11 -1.1595e+10 -1.521733e+10 4.32034e+09 -2.257938e+10 -1.969666e+10 -2.559265e+10 -1.535687e+10 -1.276854e+10 -4.494483e+09 -1.209085e+10 -5.64008e+09 -1.134847e+10 -3.419512e+09 -1.079542e+10 -4.145463e+09 -6.637486e+09 -1.11318e+09 -3.479773e+09 -1.245932e+08 -1.386961e+09 6.560655e+07 -2.436518e+08 -4.032432e+07 4.620046e+08 -7.714964e+07 9.551484e+08 -4.119761e+08 8.208582e+08 -7.117156e+08 7.457703e+08 -4.3106e+08 1.202726e+09 2.904036e+08 1.231931e+09 3.629848e+08 6.366939e+08 -4.586172e+08 -5.267629e+08 -3.507819e+08 1.679838e+09
1.741141e+13 8.92488e+11 8.743834e+11 8.848896e+11 1.190313e+12 1.160279e+12 1.300066e+12 1.005678e+12 9.39335e+11 8.089614e+11 7.927041e+11 6.882427e+11 6.444235e+11 5.151451e+11 4.825723e+11 3.210106e+11 2.720254e+11 1.772539e+11 1.248102e+11 6.691599e+10 3.599804e+10 1.207574e+10 1.679301e+09 4.594778e+08 5.821614e+09 1.451758e+10 2.55803e+10 3.43277e+10 4.245286e+10 4.784859e+10 4.988591e+10 4.925451e+10 5.074584e+10 4.9557e+10 4.407876e+10 3.421443e+10 3.138606e+10 2.539716e+10 1.948134e+10 1.381167e+10 0 ]

View File

@ -0,0 +1 @@
# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh

View File

@ -0,0 +1,2 @@
--left-context=3
--right-context=3

Some files were not shown because too many files have changed in this diff Show More