Files
homelab/active/systemd_wyoming/install_wyoming.yaml
ducoterra 7b93f740ec
Some checks failed
Reese's Arch Toolbox / build-and-push-arch-toolbox (push) Failing after 2m40s
Podman DDNS Image / build-and-push-ddns (push) Failing after 5s
wyoming updates, borg manual, fedora kscreen, bambu wifi, vscode pylance, stable diffusion
2025-05-23 13:49:03 -04:00

100 lines
3.3 KiB
YAML

- name: Install or Update the Wyoming Service
hosts: wyoming
vars_files:
- secrets/vars.yaml
tasks:
- name: Install and upgrade wyoming/wakeword
when: install
block:
# Stop running services before install/upgrade
- name: Stop wakeword service
ansible.builtin.systemd_service:
state: stopped
name: wakeword.service
scope: user
ignore_errors: true
- name: Stop wyoming service
ansible.builtin.systemd_service:
state: stopped
name: wyoming.service
scope: user
ignore_errors: true
# Wyoming Service
- name: Checkout/pull the wyoming repo
ansible.builtin.git:
repo: '{{ wyoming.repo }}'
dest: "{{ ansible_env.HOME }}/wyoming-satellite"
update: yes
- name: Run the script/setup in the wyoming repo
command: "{{ ansible_env.HOME }}/wyoming-satellite/script/setup"
- name: Install audio enhancements in wyoming repo
command: "{{ ansible_env.HOME }}/wyoming-satellite/.venv/bin/pip3 install 'webrtc-noise-gain==1.2.3'"
# Wake word service
- name: Checkout/pull the wyoming repo
ansible.builtin.git:
repo: '{{ wakeword.repo }}'
dest: "{{ ansible_env.HOME }}/wyoming-openwakeword"
update: yes
- name: Run the script/setup in the wakeword repo
command: "{{ ansible_env.HOME }}/wyoming-openwakeword/script/setup"
# Custom sound bites for start/stop listening
- name: Copy sound bites
copy:
src: "{{ item }}"
dest: "{{ ansible_env.HOME }}/wyoming-satellite/sounds/"
with_items:
- listening.wav
- finished.wav
# Custom wake word models
- name: Copy custom models
copy:
src: "{{ item }}"
dest: "{{ ansible_env.HOME }}/wyoming-openwakeword/wyoming_openwakeword/models/{{ item }}"
with_items:
- jarvis_v2.tflite
# Copy and start systemd services
- name: Create ~/.config/systemd/user dir
ansible.builtin.file:
path: "{{ ansible_env.HOME }}/.config/systemd/user"
state: directory
mode: '0755'
- name: Copy wyoming.service
template:
src: wyoming.service
dest: "{{ ansible_env.HOME }}/.config/systemd/user/wyoming.service"
mode: '0644'
- name: Copy wakeword.service
template:
src: wakeword.service
dest: "{{ ansible_env.HOME }}/.config/systemd/user/wakeword.service"
mode: '0644'
- name: Reload wakeword service
ansible.builtin.systemd_service:
state: restarted
name: wakeword.service
enabled: true
daemon_reload: true
scope: user
- name: Reload wyoming service
ansible.builtin.systemd_service:
state: restarted
name: wyoming.service
enabled: true
daemon_reload: true
scope: user
- name: Add debug alias for wakeford
lineinfile:
path: "{{ ansible_env.HOME }}/.bashrc"
line: alias debug-wakeword="journalctl --user -u wakeword -f | grep -E '0\.0[^0].*|0\.[^0].*'"
regexp: '^alias debug-wakeword=.*$'
state: present
insertafter: EOF
create: true
- name: Add debug alias for wyoming
lineinfile:
path: "{{ ansible_env.HOME }}/.bashrc"
line: alias debug-wyoming="journalctl --user -u wyoming -f | grep 'Stopped recording to'"
regexp: '^alias debug-wyoming=.*$'
state: present
insertafter: EOF
create: true