# DeepSeek Speech API: Build Short Voice Notes, Not Live Transcription

DeepSeek now exposes ASR and TTS APIs, but their different streaming capabilities determine the voice experience you can build.

By Paras Madan | 2026-11-13

DeepSeek released standalone speech-to-text and text-to-speech APIs on November 13 as part of its application API launch. They can support a recorded voice question and a spoken answer, but they do not provide a symmetrical live-audio conversation: recognition accepts a complete file, while synthesis can stream audio.

For a developer adding voice to an existing chatbot, that distinction matters more than the headline price. A push-to-record interface fits the documented recognition model. A live meeting transcript or interruptible phone agent needs capabilities this release does not establish.

## The ASR input limits shape your interface

The [speech-to-text documentation](https://api-docs.deepseek.com/guides/asr/) specifies a maximum of 120 seconds and 8 MiB per file. It accepts 16-bit PCM WAV or Ogg Opus, not arbitrary audio uploads. With stereo input, only the left channel is recognized. Language detection is automatic; streaming recognition is unsupported.

A minimal request looks like this:

```bash
curl https://api.deepseek.com/v1/tools/asr \
  -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
  -F file="@question.wav"
```

The response includes `text`, `duration_ms` and a `request_id`. This is a documentation-based example, not an executed test. Check the recording's actual encoding before using it; renaming an MP3 to WAV does not convert its contents.

I would put the duration and upload limits into the recording experience rather than discovering them after someone finishes speaking. For a support chatbot, ask for one issue per recording and show the transcript before generating an answer. That gives the person a chance to correct a product name or account reference before it becomes the basis of the response.

Do not quietly discard the right channel of a recording that contains a second speaker. Prepare an appropriate mono input or use a transcription system designed for the recording you actually have. The documented response does not establish speaker-separated meeting transcription.

## Add speech output after reviewing the answer

The [TTS guide](https://api-docs.deepseek.com/guides/tts/) offers HTTP synthesis for complete text and WebSocket synthesis for text chunks. HTTP returns WAV by default; the two documented voices are `stella` and `tide`. There is no speed control or interrupted-request resumption.

```bash
curl https://api.deepseek.com/v1/tools/tts \
  -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"text":"Your draft answer is ready for review.","voice_id":"stella"}' \
  --output answer.wav
```

For the first implementation, generate and review the complete answer before speaking it. This is slower than streaming model text straight into synthesis, but it gives you a clear point to reject an unsuitable answer. Once words have played aloud, replacing text on screen cannot take them back.

When using WebSockets, the documented final `finish` message carries success or failure. Receiving audio bytes alone is not proof of completion. TTS permits 10,000 billed characters. Its HTTP request body must stay within 64 KiB, including JSON overhead; WebSocket text also has a 64 KiB limit. Chinese characters count as two billing characters, while other characters count as one.

Recognition and synthesis also have different language lists. ASR lists Hindi, for example, while the TTS list does not. Check both sides for the language your product promises rather than assuming successful recognition implies supported speech output.

## Pricing a small voice-note workflow

The [pricing page](https://api-docs.deepseek.com/quick_start/pricing/) lists ASR at $0.116 per audio hour, temporarily discounted to $0.058. TTS is $0.45 per 10,000 characters, temporarily $0.225. The page does not provide an end date for those discounts. Text-model usage is separate.

Consider a hypothetical batch of 1,000 one-minute questions with answers totaling one million billed characters. ASR would cost about $0.97 at the promotional rate and TTS $22.50, before generating any answers. At list rates, those amounts become about $1.93 and $45. These are calculated examples, not observed production costs.

That example exposes a useful product decision: making every long answer audible can cost more than accepting short voice questions. An optional concise spoken answer may be a better default than reading a full technical explanation aloud.

## What to test before offering voice to users

Use consented recordings containing your own domain vocabulary, background noise and corrections mid-sentence. Compare the returned transcript with a human-written reference, then listen for names, numbers and pauses in the synthesized answer. Keep recognition quality and voice quality as separate acceptance tests.

No accuracy or latency result is established here. The [release announcement](https://api-docs.deepseek.com/updates/) makes these services available; it does not tell you whether a difficult customer recording will work. Start with a short recorded-message workflow and earn the right to expand it through testing, rather than calling a file-upload endpoint a live voice agent.

I’m Paras. I work at the intersection of AI, engineering and distribution.

I help AI teams explain technical capabilities and limitations in content developers can actually use.

[Book a 30-minute call](https://cal.com/paras-madan/30min)
