Skip to content

For developers / Voice AI use cases

Bulk
transcription pipeline

Submit recordings to the async jobs API, page results with cursors, and receive a signed webhook on completion. Idempotency keys keep retries safe.
Turn a backlog into searchable text.
A workflow plan

Bulk transcription pipeline

  1. 01Submit jobs
  2. 02Get notified
  3. 03Collect the results

Hear
An example setup to adapt to your own workflow.

What you are building toward

Queue thousands of recordings and get webhooks when they're done.

A practical way to start

A few clear steps.
One useful workflow.

Connect the pieces for this use case, then test the full experience with the calls, recordings or text your users will bring.

  1. 01

    Submit jobs

    POST recordings with an Idempotency-Key; PyAI queues and processes them.

  2. 02

    Get notified

    Receive an HMAC-signed webhook per job, or poll with limit/cursor paging.

  3. 03

    Collect the results

    Keep completed transcripts in your workflow, with safe retries and cursor-based paging.

Try the speech layer

Bring a recording.
Take back the words.

Choose your own audio or load the bundled synthetic sample. Transcription starts only when you choose; the request and matching code stay visible.

Try your audio. Take the code.

Upload a short audio clip and read the transcript. The code follows your settings.

Try a provided English recording

Recorded synthetic speech from Cast, supplied as input. Choose Transcribe to get a new Hear result.

WAV, MP3, M4A, FLAC, or OGG · Up to 8 MB. Audio is sent to PyAI only when you choose Transcribe.

No signup

Live demo: up to 8 requests per day.

import { readFile } from "node:fs/promises";

const filePath = "audio.wav";
const form = new FormData();
form.append("file", new Blob([await readFile(filePath)]), filePath);
form.append("model", "pyai-hear");
form.append("response_format", "json");

const response = await fetch("https://api.pyai.com/v1/audio/transcriptions", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.PYAI_API_KEY}` },
  body: form,
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());

Set PYAI_API_KEY in your server environment. Put the selected file beside your script, or update its path.

Copy the code to use these settings. You can also open Playground and choose your audio there.

Open Playground

The right part of the voice stack

Built around your job.
Powered by PyAI.

Explore the product behind each part of this use case, including its controls, API examples and integration requirements.

Before you take it further

A little more detail.
A clearer next step.

Start with a sandbox key and a representative input. Review the result before widening the workflow.

How does PyAI support bulk transcription pipeline?

Submit recordings to the async jobs API, page results with cursors, and receive a signed webhook on completion. Idempotency keys keep retries safe.

What does it cost to test this use case?

Sandbox keys never bill, so you can try the product before sending funded live traffic. Live usage requires available credit and uses the rates for the products in your workflow. See current pricing and account terms before a production rollout.

Can we keep our existing application?

Yes. Hear and Speak support OpenAI-compatible request shapes. Omni uses its native realtime protocol through the official SDK. You can also configure a managed Agent visually and connect the knowledge and tools your business already uses.

How do we keep the experience useful in production?

Test representative recordings or text, check the output in your own application, and keep error handling and retries visible. Hear produces transcripts, Speak produces speech, and Trace or Recap add review and summaries where they fit the workflow.

Put the idea into motion.

Sandbox keys never bill. Fund a live key when you go to production.