Skip to content

T058: Render audio-tts widgets (US2 Italian native-speaker) — blocked on TTS provider selection #2

@gyasis

Description

@gyasis

T058 — Render audio-tts widgets (US2: Italian native-speaker persona)

Status: Blocked on an upstream decision — parked here so it isn't lost.

What's blocked

The audio-tts widget renderer is the final open item from US2 (the Italian native-speaker dialog persona). It cannot be completed until the TTS provider is selected, because the renderer's voice catalog, voice enum, and audio-pipeline contract all depend on that choice.

Where the decision lives

~/dev/prd/scratch/chiron_tts_provider_selection_2026-04-29.md — defines the decision criteria and candidate matrix (Gemini, ElevenLabs, Azure, OpenAI, Coqui, Piper, Hume) and proposes a TtsProvider interface.

Current state (provisional, not complete)

A provisional renderAudioTts() exists in skill/lib/widget-renderer.ts (authored 2026-04-29). It emits HTML only — it assumes an upstream pipeline already produced an MP3 at spec.audioPath and just points an <audio> element at it, with a collapsible transcript, an error fallback, and a chiron:audio-ended event. It is intentionally not wired to any provider.

Contract gaps to close once a provider is chosen

AudioTtsWidgetSchema currently defines only { type, transcript, voice }. The renderer also reads (as optional structural fields, pending a schema PR):

  1. audioPath — required for HTML rendering
  2. speaker? — required for multi-persona lessons (Alice / Bob / Native-Speaker)
  3. language? — required for lang= accessibility
  4. voice should become an enum sourced from the chosen provider's voice catalog (currently a free-form string)

Acceptance criteria (when unblocked)

  • TTS provider selected and recorded in the PRD
  • TtsProvider interface implemented; pipeline emits MP3s to <lesson-output-dir>/audio/
  • AudioTtsWidgetSchema tightened (audioPath, speaker?, language?, voice enum)
  • renderAudioTts() finalized against the tightened schema
  • US2 audio path validated end-to-end (also unblocks T059 production wire-up)

Blocks

  • T059 (production wire-up)
  • US2 audio path

Spec: specs/001-chiron-v1/tasks.md T058.

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