Skip to content

v6.0.0: PULSE/VoiceServer/voice.ts hardcodes afplay — Linux TTS fails with ENOENT (#855 fix didn't carry into the v6 voice module) #1412

Description

@badosanjos

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.:

  • darwinafplay
  • 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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions