Initial commit
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# ~/.config/pipewire/pipewire-pulse.conf.d/50-network-server.conf (on the Pi)
|
||||
#
|
||||
# Lets your Omarchy machine reach the robot's microphone and speaker over the
|
||||
# network, using the PulseAudio protocol that pipewire-pulse speaks.
|
||||
#
|
||||
# This replaces the default address list, so "unix:native" must stay in it.
|
||||
# Anyone on the LAN who can reach port 4713 could listen to the microphone;
|
||||
# the nftables rules installed alongside restrict it to your machine's IP.
|
||||
|
||||
pulse.properties = {
|
||||
server.address = [
|
||||
"unix:native"
|
||||
{ address = "tcp:4713" client.access = "unrestricted" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
# OPTIONAL. Copy to ~/.config/pipewire/pipewire.conf.d/60-echo-cancel.conf on the Pi
|
||||
# (drop the ".optional") only if the robot hears its own voice and Hermes keeps
|
||||
# interrupting itself (barge-in tripped by speaker bleed).
|
||||
#
|
||||
# It creates an echo-cancelled mic ("robot_ec_source") and a matching speaker
|
||||
# ("robot_ec_sink"). After enabling it, uncomment the pulse.device lines in the
|
||||
# Omarchy tunnel config so the tunnels use these nodes instead of the raw ones.
|
||||
#
|
||||
# WebRTC echo cancellation costs some CPU; a Pi Zero 2 W manages it at speech rates,
|
||||
# but check `top` afterwards.
|
||||
|
||||
context.modules = [
|
||||
{ name = libpipewire-module-echo-cancel
|
||||
args = {
|
||||
library.name = aec/libspa-aec-webrtc
|
||||
capture.props = { node.name = "robot_ec_capture" node.passive = true }
|
||||
source.props = { node.name = "robot_ec_source" node.description = "Robot mic (echo-cancelled)" }
|
||||
sink.props = { node.name = "robot_ec_sink" node.description = "Robot speaker (echo-cancelled)" }
|
||||
playback.props = { node.name = "robot_ec_playback" node.passive = true }
|
||||
}
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user