Skip to content

feat: TalkTool speaking guard + FishTTS done_speaking signal#148

Merged
xingjianll merged 1 commit into
mainfrom
feat/next
Apr 5, 2026
Merged

feat: TalkTool speaking guard + FishTTS done_speaking signal#148
xingjianll merged 1 commit into
mainfrom
feat/next

Conversation

@xingjianll

Copy link
Copy Markdown
Contributor
  • FishTTS: restructured to one websocket call per utterance, sends done_speaking signal after real audio duration has elapsed (not generation time). Uses PCM sample count to calculate exact playback duration.
  • TalkTool: tracks speaking state, rejects new talk calls with error while still speaking. Clears on done_speaking signal from TTS.
  • Both done_speaking sender/receiver are optional for backward compat.

- FishTTS: restructured to one websocket call per utterance, sends
  done_speaking signal after real audio duration has elapsed (not
  generation time). Uses PCM sample count to calculate exact playback
  duration.
- TalkTool: tracks speaking state, rejects new talk calls with error
  while still speaking. Clears on done_speaking signal from TTS.
- Both done_speaking sender/receiver are optional for backward compat.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Apr 5, 2026

Copy link
Copy Markdown

Test Coverage

Target Coverage Covered Lines
Backend 95.73% 9998 / 10444
Frontend 89.02% 1467 / 1648

@xingjianll xingjianll merged commit 8cde3c0 into main Apr 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant