From 0a9a5ab578e3d29ff9c52a11396daf3ee0b9fd12 Mon Sep 17 00:00:00 2001 From: Pablo Catalina Date: Sat, 9 Dec 2023 19:30:16 +0100 Subject: [PATCH 1/4] Add pulseaudio server support --- assist_microphone/Dockerfile | 3 ++- assist_microphone/build.yaml | 2 +- assist_microphone/config.yaml | 10 ++++++++-- .../etc/s6-overlay/s6-rc.d/assist_microphone/run | 10 ++++++++++ repository.json | 2 +- 5 files changed, 22 insertions(+), 5 deletions(-) diff --git a/assist_microphone/Dockerfile b/assist_microphone/Dockerfile index 8022dd9..46fab4d 100644 --- a/assist_microphone/Dockerfile +++ b/assist_microphone/Dockerfile @@ -14,6 +14,7 @@ RUN \ build-essential \ libasound2-plugins \ alsa-utils \ + libpulse0 \ ffmpeg \ python3 \ python3-pip \ @@ -23,7 +24,7 @@ RUN \ setuptools \ wheel \ && pip3 install --no-cache-dir \ - "homeassistant_satellite[silerovad,webrtc]@https://github.com/synesthesiam/homeassistant-satellite/archive/refs/tags/${HOMEASSISTANT_SATELLITE_VERSION}.tar.gz" \ + "homeassistant_satellite[silerovad,webrtc,pulseaudio]@https://github.com/synesthesiam/homeassistant-satellite/archive/refs/tags/${HOMEASSISTANT_SATELLITE_VERSION}.tar.gz" \ \ && apt-get remove --yes build-essential python3-dev \ && apt-get clean \ diff --git a/assist_microphone/build.yaml b/assist_microphone/build.yaml index e39afff..4a30ad8 100644 --- a/assist_microphone/build.yaml +++ b/assist_microphone/build.yaml @@ -6,4 +6,4 @@ codenotary: signer: notary@home-assistant.io base_image: notary@home-assistant.io args: - HOMEASSISTANT_SATELLITE_VERSION: v2.2.0 + HOMEASSISTANT_SATELLITE_VERSION: v2.3.0 diff --git a/assist_microphone/config.yaml b/assist_microphone/config.yaml index d894c79..a49c011 100644 --- a/assist_microphone/config.yaml +++ b/assist_microphone/config.yaml @@ -1,9 +1,9 @@ --- -version: 2.2.3 +version: 2.2.4 slug: assist_microphone name: Assist Microphone description: Stream microphone audio to Assist -url: https://github.com/rhasspy/hassio-addons +url: https://github.com/xkill/hassio-addons hassio_api: true arch: - amd64 @@ -23,6 +23,9 @@ options: udp_mic: false pipeline: "" host: "homeassistant" + pulseserver: "" + pulseecho: true + pulseducking: 0.2 debug_logging: false debug_recording_dir: "" schema: @@ -38,6 +41,9 @@ schema: udp_mic: bool pipeline: str host: str + pulseserver: str + pulseecho: bool + pulseducking: float debug_logging: bool debug_recording_dir: str init: false diff --git a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run index b5c6051..6999e74 100755 --- a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run +++ b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run @@ -18,6 +18,16 @@ if [ "$(bashio::core.ssl)" == 'true' ]; then extra_args+=('--protocol' 'https') fi +if [ "$(bashio::config 'pulseserver')" != "" ]; then + extra_args+=('--pulseaudio' $(bashio::config 'pulseserver')) +fi +if [ "$(bashio::config 'pulseecho')" != 'true' ]; then + extra_args+=('--echo-cancel') +fi +if [ "$(bashio::config 'pulseducking')" != "" ]; then + extra_args+=('--ducking' $(bashio::config 'pulseducking')) +fi + exec python3 -m homeassistant_satellite \ --host "$(bashio::config 'host')" \ --port "$(bashio::core.port)" \ diff --git a/repository.json b/repository.json index 18610c3..ba094d5 100644 --- a/repository.json +++ b/repository.json @@ -1,5 +1,5 @@ { "name": "Rhasspy Hass.IO Add-Ons", - "url": "https://github.com/rhasspy/hassio-addons", + "url": "https://github.com/xkill/hassio-addons", "maintainer": "Michael Hansen " } From 7e638c030dc6d98d53c6abb634a5d2f9e4863d43 Mon Sep 17 00:00:00 2001 From: Pablo Catalina Date: Sun, 10 Dec 2023 00:30:37 +0100 Subject: [PATCH 2/4] Back rhasspy github URL --- assist_microphone/config.yaml | 2 +- repository.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assist_microphone/config.yaml b/assist_microphone/config.yaml index a49c011..d76cd2c 100644 --- a/assist_microphone/config.yaml +++ b/assist_microphone/config.yaml @@ -3,7 +3,7 @@ version: 2.2.4 slug: assist_microphone name: Assist Microphone description: Stream microphone audio to Assist -url: https://github.com/xkill/hassio-addons +url: https://github.com/rhasspy/hassio-addons hassio_api: true arch: - amd64 diff --git a/repository.json b/repository.json index ba094d5..18610c3 100644 --- a/repository.json +++ b/repository.json @@ -1,5 +1,5 @@ { "name": "Rhasspy Hass.IO Add-Ons", - "url": "https://github.com/xkill/hassio-addons", + "url": "https://github.com/rhasspy/hassio-addons", "maintainer": "Michael Hansen " } From e84d8f2121905e6f6e1462d639347316214c39de Mon Sep 17 00:00:00 2001 From: xkill Date: Sun, 10 Dec 2023 00:41:21 +0100 Subject: [PATCH 3/4] Add pulseaudio options only if pulseaudio server enabled --- .../etc/s6-overlay/s6-rc.d/assist_microphone/run | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run index 6999e74..36b025e 100755 --- a/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run +++ b/assist_microphone/rootfs/etc/s6-overlay/s6-rc.d/assist_microphone/run @@ -20,12 +20,12 @@ fi if [ "$(bashio::config 'pulseserver')" != "" ]; then extra_args+=('--pulseaudio' $(bashio::config 'pulseserver')) -fi -if [ "$(bashio::config 'pulseecho')" != 'true' ]; then - extra_args+=('--echo-cancel') -fi -if [ "$(bashio::config 'pulseducking')" != "" ]; then - extra_args+=('--ducking' $(bashio::config 'pulseducking')) + if [ "$(bashio::config 'pulseecho')" != 'true' ]; then + extra_args+=('--echo-cancel') + fi + if [ "$(bashio::config 'pulseducking')" != "" ]; then + extra_args+=('--ducking' $(bashio::config 'pulseducking')) + fi fi exec python3 -m homeassistant_satellite \ From 892254e4efd04b2967838243b6330ce7e2c50229 Mon Sep 17 00:00:00 2001 From: xkill Date: Sun, 10 Dec 2023 00:51:42 +0100 Subject: [PATCH 4/4] Update en.yaml Add descriptions for new pulseaudio settings --- assist_microphone/translations/en.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/assist_microphone/translations/en.yaml b/assist_microphone/translations/en.yaml index d2c9cd7..f4511fa 100644 --- a/assist_microphone/translations/en.yaml +++ b/assist_microphone/translations/en.yaml @@ -56,5 +56,17 @@ configuration: name: Debug recording directory description: >- Directory to save audio for debugging purposes. Should be in /share + pulseserver: + name: Puseaudio Server + description: >- + Pulseaudio server IP or host and Port (optional) [:PORT] + pulseecho: + name: Puseaudio Echo Cancel + description: >- + Enable Pulseaudio Echo Cancel + pulseducking: + name: Puseaudio Server Ducking + description: >- + Enable Pulseaudio duking. Lower down playback streams to the volume level on this setting (e.g., 0.2 for 20%) after the wake word is detected and until the pipeline finishes, making speech recognition easier network: 5000/udp: raw 16-bit 16Khz mono PCM audio