Skip to content

Releases: GooDAnDReaDY/dsh-tts

dsh-tts 0.3.0

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 21 Aug 12:12

Two more voices.

Xiaomi MiMo (mimo) — speaks through a chat endpoint: the text goes in as a message, voice and format as a separate field, and the audio comes back base64. Set MIMO_API_KEY; mimoFormat chooses mp3 or wav, and the voice is a MiMo voice name.

MiniMax (minimax) — through its official CLI rather than over HTTP: its protocol carries a separate group id and its own response envelope, and the CLI already handles the account, the login and the voice catalogue. Install it and log in; the provider shells out to it the way the piper and espeak providers do, and declines cleanly when it is missing.

- id: dsh-tts
  config:
    chain:
      - provider: mimo
      - provider: edge

Doubao is not included. Reaching it needs either a vendor protocol with an app id, token and cluster that nothing at hand pins down, or a companion desktop app on another operating system. A provider written from a guess is worse than one that does not exist.

Install

dsh plugin --profile web add @goodandready/dsh-tts

dsh-tts 0.2.1

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 21 Aug 12:07

Reading a reply out loud while you answer it is a losing race: you talk over the voice, and the voice lands in your recording.

The voice-input plugin now announces the moment the microphone opens, and the speech plugin stops playback when it hears that — the queue is dropped, the current audio pauses, browser speech is cancelled.

dsh-voice:speaking  { phase: 'start' | 'end' }

A plain window event: no service, no import, no dependency in either direction. Either plugin works alone, and if the other is not installed the event simply never arrives.

bargeIn in the speech settings turns it off.

dsh-tts 0.2.0

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 20 Aug 18:39

Speaking as it goes

Replies used to be collected for the whole turn and read once it ended — silence while the agent worked, then everything at once. Each reply is now synthesized the moment it lands, split on sentence boundaries, so sound starts almost immediately. speakAsItGoes: false restores the old behaviour.

Approvals are announced

When a turn stops for an approval, the plugin says so and plays a short chime — that is exactly the moment nobody is looking at the screen. Questions from the agent are announced too. The chime is generated in the browser, so there is no file to download or configure.

Settings: announceApproval, approvalText, questionText, chime (ding, beep, none).

Playback no longer cuts itself off

Every arriving utterance used to pause the previous one. Playback is a queue now, and a place in it is reserved before synthesis starts, so the order spoken is the order written — not the order the providers answered in.

Also

  • Playback speed rate, 0.5 to 2. Synthesis is untouched; the browser plays faster or slower.
  • A fallback voice: if synthesis fails, the browser reads the text itself.
  • Pause, resume and stop in the composer row while something is being read.
  • Three more providers speaking OpenAI's dialect: siliconflow, deepinfra, fireworks. Each endpoint was probed without a key and answered 401.

Install

dsh plugin --profile web add @goodandready/dsh-tts

dsh-tts-0.1.2

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 20 Aug 10:42

Speak finished DeepSeek Harness Web UI replies through a host-side TTS chain.

  • Settings -> Speech: toggle speak-agent-replies, pick providers, paste API keys
  • Keys go to the DSH credentials store (never echoed back to the browser)
  • Fallback chain: cloud providers plus local Edge / Piper / eSpeak
  • Tool speak_text; audio is not written into the model transcript

Install: dsh plugin --profile web add @goodandready/dsh-tts

dsh-tts-0.1.1

Choose a tag to compare

@GooDAnDReaDY GooDAnDReaDY released this 20 Aug 10:38

Speak finished DeepSeek Harness Web UI replies through a host-side TTS chain.

  • Settings -> Speech: toggle speak-agent-replies, pick providers, paste API keys
  • Keys go to the DSH credentials store (never echoed back to the browser)
  • Fallback chain: cloud providers plus local Edge / Piper / eSpeak
  • Tool speak_text; audio is not written into the model transcript

Install: dsh plugin --profile web add @goodandready/dsh-tts