Skip to content
LiveREST

Speech-to-text for phone audio.

Hear is PyAI's multilingual speech-to-text API: tuned for 8 kHz call audio, first partials in about 200 ms in-region (revisable), and an OpenAI-compatible drop-in. On English finals you can turn on cleanup (digits, punctuation, filler drop, per-call vocabulary) without rewriting the live partials.

Price
$0.001/min
Endpoint
POST /v1/audio/transcriptions
Scope
hear:transcribe
Model id
pyai-hear
Batch (async, -50%)$0.0005/min

Hear it transcribe a real call

Drop a call recording in the Playground and watch Hear split the speakers and build a searchable transcript. No signup.

Transcribe a call in the Playground
Streaming STT, one WebSocket
// Pass the key as a WebSocket subprotocol (browser-safe).
const ws = new WebSocket(
  "wss://api.pyai.com/v1/audio/transcriptions/stream" +
    "?protocol=pyai-hear-v1&model=pyai-hear&encoding=pcm16&sample_rate=16000&interim_results=true",
  ["pyai-key." + apiKey],
);
ws.onmessage = (e) => {
  const f = JSON.parse(e.data); // bare JSON frames
  if (f.type === "partial" || f.type === "partial_stable") render(f.text);
  else if (f.type === "speech_final" || f.type === "final") commit(f.text);
};

Start in minutes

cURL
curl https://api.pyai.com/v1/audio/transcriptions \
  -H "Authorization: Bearer $PYAI_KEY" \
  -F model=pyai-hear \
  -F file=@call.wav

What you get

Built for the phone

Tuned on narrowband 8 kHz call audio, so names and digits hold up on the line noise and codecs studio STT was never trained on.

Partials stay raw. Finals can clean up.

Live partials stay fast and revisable. On English finals, opt in to numerals, sentence punctuation, spoken dictation, filler drop, and a per-call vocabulary. Fail-open: a miss returns the unformatted text.

Replace Deepgram in an afternoon

Point your existing OpenAI client at https://api.pyai.com/v1. Same request shape, one-line base URL change.

Capabilities

  • Telephony 8 kHz
  • Eight sync/streaming languages
  • Streaming partials ~200 ms
  • Final-text cleanup
  • OpenAI-compatible
  • Async batch
  • OpenAI drop-in

First partials in ~200 ms in-region. They are revisable and stable_text follows. Batch real-time factor is 92-247x. Streaming STT runs over a WebSocket so you transcribe live call audio as it arrives. First-partial latency and batch throughput are different metrics.

FAQ

What is Hear?

Hear is PyAI's speech-to-text API. It transcribes 8 kHz telephone audio in batch or realtime, speaks the OpenAI transcription contract, and can clean English finals (digits, punctuation, fillers, vocabulary) without touching the live partials.

How much does Hear STT cost?

You pay only for audio transcribed, billed per minute - no seats, no platform fee, no minimums. Check our pricing page for the latest rates.

How do I migrate from OpenAI Whisper?

Change two lines: point your existing OpenAI SDK at https://api.pyai.com/v1 and pass your PyAI key. The request and response shapes match, so the rest of your code is unchanged.

Does Hear stream?

Yes. Realtime STT runs over a WebSocket (GET /v1/audio/transcriptions/stream?protocol=pyai-hear-v1), returning partial results as the caller speaks and a final result per utterance.

When is Hear the right fit?

Hear is built for phone calls. If you transcribe narrowband 8 kHz call audio - IVR, contact-center, voicemail, real-time agents - Hear is tuned for it where studio-trained STT degrades. For long recordings you don't need instantly, the async batch tier halves the cost.

Is it accurate on bad phone lines?

Hear is trained on real narrowband call audio rather than clean studio takes, so the accuracy holds up on the 8 kHz lines and codecs that real telephony actually uses.

Build with Hear today.

An instant sandbox key lets you test without billing. Create an account when you want saved projects, and fund a live key for production traffic.