> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.empiriolabs.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.empiriolabs.ai/_mcp/server.

# Sonilo Proofread

> Transcribes a video and translates the script into 24 languages, returning editable subtitle tracks you can correct before dubbing.

![Sonilo Proofread](https://media.empiriolabs.ai/model-logos/sonilo-proofread.png)

[Sonilo](/providers/sonilo) · Transcription

`POST /v1/audio/transcriptions`

Transcribes a video and translates the script into 24 languages, returning editable subtitle tracks you can correct before dubbing.

## At a glance

| Field               | Value                                                         |
| ------------------- | ------------------------------------------------------------- |
| Model id            | `sonilo-proofread`                                            |
| Model release date  | -                                                             |
| Input modalities    | Video                                                         |
| Output modalities   | Text                                                          |
| Context window      | -                                                             |
| Weight precision    | -                                                             |
| Features            | transcription, translation, multilingual, srt_vtt, timestamps |
| Native inference    | No                                                            |
| New                 | Yes                                                           |
| Supported endpoints | `POST /v1/audio/transcriptions`                               |
| Alternate model ids | `sonilo/sonilo-proofread`                                     |

## Pricing

| Charge    | Spec                    | Rate    |
| --------- | ----------------------- | ------- |
| Proofread | per second per language | \$0.002 |

## Example request

```bash
curl https://api.empiriolabs.ai/v1/audio/transcriptions \
  -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \
  -F model=sonilo-proofread \
  -F file=@meeting.mp3
```

## Parameters

| Parameter         | Type   | Required | Default | Description                                                                                                                                                                                                                                                |
| ----------------- | ------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `languages`       | string | no       | -       | JSON array of language codes to translate the transcript into. Billed per language. Omit it for the source transcript only. Supported: en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th, ar, tr, vi, id, ta, ml, kn, gu, pa_in, sd_in, hi.     |
| `source_language` | string | no       | -       | The language actually spoken in the video, which helps on short, noisy or mixed-language audio. Omit it to detect the language. Supported: en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th, ar, tr, vi, id, ta, ml, kn, gu, pa_in, sd_in, hi. |
| `video_url`       | string | no       | -       | Source video, as a publicly reachable URL. Up to 300MB and 5 minutes, and it must carry an audio track.                                                                                                                                                    |

## Notes

**Languages**

en, zh_cn, ja, ko, pt, pt_br, es, es_419, de, fr, it, ru, th, ar, tr, vi, id, ta, ml, kn, gu, pa_in, sd_in, hi

**Controls**

Supports source video, a list of target languages to translate the transcript into, and an optional expected source language for short or noisy audio.

**Limits**

* Source video up to 300MB and 5 minutes
* The video must carry an audio track
* Subtitle tracks are returned inline as text, one per language, always including the source language

**Billing**

* Charged per second of source video multiplied by the number of target languages, with a 10 second minimum. A transcript-only request counts as one.
* A request rejected before generation is not billed.

---

*Machine-readable schema:* `GET https://api.empiriolabs.ai/v1/models/sonilo-proofread`.