tryAGI / tryAGI/Murf

/v1/speech/stream is declared as an empty JSON 200, so no StreamAsStreamAsync is generated for the streaming TTS endpoint

Open Beginner friendly
#63 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
0
Forks
0
Avg merge
1m
Merged PRs (30d)
14

Description

Problem

src/libs/Murf/openapi.json declares POST /v1/speech/stream (operationId stream, "Stream Speech") with a 200 body of

"application/json": { "schema": { "$ref": "#/components/schemas/text_to_speech_stream_Response_200" } }

where text_to_speech_stream_Response_200 is { "type": "object", "properties": {}, "description": "Empty response body" }.

The real endpoint answers with chunked audio bytes (the whole point of the operation), so the generated SubpackageTextToSpeechClient.StreamAsync / StreamAsResponseAsync model an empty JSON object, and the package exposes no …AsStreamAsync for the one operation that streams. A consumer that wants first-audio latency from Murf has to bypass the SDK with a raw HttpClient today.

Fix

Declare the 200 as binary, e.g.

"200": { "content": { "audio/*": { "schema": { "type": "string", "format": "binary" } } } }

(or application/octet-stream), so AutoSDK emits StreamAsStreamAsync returning the response stream the same way Rime.TextToSpeechClient.CreateTtsAsStreamAsync, PlayHT.TextToSpeechClient.StreamSpeechAsStreamAsync and Cartesia.TtsClient.TtsBytesAsStreamAsync do.

Found while auditing which tryAGI TTS SDKs can feed a PCM streaming sink (HavenDV/Advantage, 2026-09-15).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/libs/Murf/openapi.json at POST /v1/speech/stream and compare its response declaration with the streaming TTS operations referenced in the issue. Regenerate or inspect the SDK and verify that StreamAsStreamAsync is emitted and exposes the endpoint's streamed audio response instead of an empty JSON object.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, openapi
Domain
api
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.