Compare commits

...

2 Commits

Author SHA1 Message Date
claude 99e73ea653 Listen on the Scarlett, because the fifine returns silence (V-487)
mavwaked has logged zero completed utterances in three days of journal, and
the wake word is not why: the count was zero before it existed too. The fifine
returns RMS 0.00004 over five seconds with its capture switch on and its ALSA
volume at the full 496 of 496, so the silence is in the hardware and no flag
reaches it.

Measured over eight seconds of the same speech: fifine 0.00004, onboard ALC897
0.142 clipping at peak 1.0, USB camera 0.289 clipping, Scarlett Solo 0.003
clean. The two loud ones clip, so the quiet clean one wins.

Named CARD=Gen rather than card 4, because a USB card number moves when
something else is replugged and this daemon must not change ears quietly.

Verified in the room: keyword heard at score 0.999, utterance complete in
1.65s, and she answered "сейчас 17 часов 24 минуты".
2026-08-09 17:24:41 +04:00
claude ab1784f5e1 Merge pull request 'mavwaked has no wake word, only an energy VAD — add silero-vad and a keyword gate' (#221) from task/487-wake-word-deploy into master 2026-08-09 13:56:25 +02:00
+17 -8
View File
@@ -41,18 +41,27 @@ Requires=maven-voice-tunnel.service
After=maven-voice-tunnel.service After=maven-voice-tunnel.service
[Service] [Service]
# card 0 is the fifine USB microphone. Named, and not "default", because the # The Scarlett Solo 4th Gen, and not the fifine. The fifine was the device
# default device follows whatever pipewire last decided and this daemon should # here for three days and mavwaked never logged one utterance in them, because
# not change ears when he plugs in a headset. # it returns RMS 0.00004 with its capture switch on and its ALSA volume at the
# full 496 of 496. That silence is in the hardware, so no flag reaches it.
#
# Named CARD=Gen and not card 4, because a USB card number moves when
# something else is replugged and this daemon must not change ears quietly.
# Not "default" either: that follows whatever pipewire last decided.
# #
# plughw and not hw. mavwaked asks arecord for 16kHz mono, which is what the # plughw and not hw. mavwaked asks arecord for 16kHz mono, which is what the
# whole pipeline is canonical in. The fifine offers 2 channels at 44100 or # whole pipeline is canonical in. Neither microphone offers it, so bare hw
# 48000 and nothing else, so bare hw:0,0 dies on "Channels count non # dies on "Channels count non available" before a frame is read. plughw puts
# available" before a frame is read. plughw puts ALSA's downmix and resampler # ALSA's downmix and resampler in front. Any replacement wants the same.
# in front. Any replacement microphone wants the same treatment. #
# The Scarlett measured RMS 0.003 against 0.14 on the onboard input, so its
# front-panel gain is the thing to raise if she mishears. That is a knob, not
# a control ALSA exposes. The two loud devices, the onboard ALC897 and the
# camera, both clip at peak 1.0 and are worse candidates, not better ones.
Environment=LD_LIBRARY_PATH=%h/.local/lib Environment=LD_LIBRARY_PATH=%h/.local/lib
ExecStart=%h/.local/bin/mavwaked \ ExecStart=%h/.local/bin/mavwaked \
-device plughw:0,0 \ -device plughw:CARD=Gen,DEV=0 \
-addr 127.0.0.1:9100 \ -addr 127.0.0.1:9100 \
-lang ru \ -lang ru \
-vad-model %h/.local/share/maven/models/silero_vad.onnx \ -vad-model %h/.local/share/maven/models/silero_vad.onnx \