Summary
Follow-up to #855 (closed/completed for the v4-era VoiceServer/server.ts): the v6 PULSE-integrated voice module LIFEOS/PULSE/VoiceServer/voice.ts still hardcodes macOS-only afplay for playback (~line 356):
const proc = spawn("/usr/bin/afplay", ["-v", volume.toString(), tempFile])
On Linux, POST :31337/notify returns:
{"status":"error","message":"TTS failed: ENOENT: no such file or directory, posix_spawn '/usr/bin/afplay'","notification_sent":true}
ElevenLabs synthesis succeeds (the API call and temp file work); only local playback dies. Same silent-failure shape as #855, in the component that superseded it.
Environment
Ubuntu 24.04, LifeOS v6.0.0, Pulse via systemd user unit.
Fix suggestion
Platform-aware playback chain, e.g.:
darwin → afplay
linux → first available of paplay (PulseAudio/PipeWire), aplay, ffplay -nodisp -autoexit
with a clear log line when no player is found instead of a spawn ENOENT. (Cf. #405/#685 for the older Linux-support history.)
Summary
Follow-up to #855 (closed/completed for the v4-era
VoiceServer/server.ts): the v6 PULSE-integrated voice moduleLIFEOS/PULSE/VoiceServer/voice.tsstill hardcodes macOS-onlyafplayfor playback (~line 356):On Linux,
POST :31337/notifyreturns:{"status":"error","message":"TTS failed: ENOENT: no such file or directory, posix_spawn '/usr/bin/afplay'","notification_sent":true}ElevenLabs synthesis succeeds (the API call and temp file work); only local playback dies. Same silent-failure shape as #855, in the component that superseded it.
Environment
Ubuntu 24.04, LifeOS v6.0.0, Pulse via systemd user unit.
Fix suggestion
Platform-aware playback chain, e.g.:
darwin→afplaylinux→ first available ofpaplay(PulseAudio/PipeWire),aplay,ffplay -nodisp -autoexitwith a clear log line when no player is found instead of a spawn ENOENT. (Cf. #405/#685 for the older Linux-support history.)