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
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// 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 https://api.pyai.com/v1/audio/transcriptions \
-H "Authorization: Bearer $PYAI_KEY" \
-F model=pyai-hear \
-F file=@call.wavWhat 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.