23 lines
1.1 KiB
Plaintext
23 lines
1.1 KiB
Plaintext
# 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 }
|
|
}
|
|
}
|
|
]
|