Skip to content

Exit non-zero on synth failure (cloud-unreachable currently exits 0) — blocks dreamteam offline fallback #7

Description

@jphein

dreamteam PR jphein/dreamteam#30 added an engine-fallback chain to its speak seam: engines are tried in order, stopping at the first that exits 0. The seam contract it documents: the engine must honor SPEECH_ENGINE/PIPER_VOICE env and exit non-zero on synthesis failure.

Current behavior found while testing: tts.py exits 1 on missing creds, but on cloud-unreachable it returns None and still exits 0 — so a network drop looks like success and the fallback hop (e.g. to a local piper engine) never fires.

Two asks:

  1. Exit non-zero whenever no audio was produced (incl. cloud-unreachable), so downstream fallback chains can react.
  2. (Related, larger) local TTS/STT engine support — piper was the working assumption on the dreamteam side; its half is merged-ready and dormant behind config .speech.fallback=["piper"].

Context: jphein/dreamteam#17 (the dreamteam-side issue), jphein/dreamteam#30 (the ready-and-waiting consumer).

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions