Skip to content

feat: Section Announce (TTS) #9

@ElBeh

Description

@ElBeh

Description

Announce section names via text-to-speech when the active section changes
during playback. Helps guitarists keep their eyes on the fretboard instead
of looking at the screen for section transitions.

Estimated effort: ~2–3h

Requirements

  • Use browser-native Web Speech API (SpeechSynthesis)
  • Announce section type + label on section change during playback
  • Toggle in PlayerControls (on/off, persisted in localStorage)
  • Configurable speech rate (slightly faster than default, e.g. 1.2)
  • Optional voice selector (OS-dependent available voices)
  • No announcement when seeking manually (only during continuous playback)
  • Works for both audio songs and dummy songs
  • Band Sync: announcement is local per client (not synced)

Implementation

  • New hook: src/hooks/useSectionAnnounce.ts
  • Toggle button in PlayerControls.tsx

Decisions

  • Web Speech API over external TTS libraries: zero bundle size, offline-capable
  • Speech rate default 1.2 to keep announcements brief and non-intrusive
  • Upgrade path: pre-render section names into AudioBuffers via OfflineAudioContext if latency becomes an issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions