OpenTranscription
OpenTranscription
RankerModelosPlayground
OpenTranscription
OpenTranscription

Una API para cada modelo de voz a texto que vale la pena. Compáralos con tu audio, enruta al mejor, paga por segundo.

Estado de la plataforma

Producto

ClasificadorModelosTranscripcionesPlaygroundBlog

Desarrolladores

DocumentaciónConfiabilidadVersionado APIEstado

Legal

Política de PrivacidadTérminos de ServicioSoporte
© 2026 OpenTranscription
Volver a Modelos$0.0035/min

Universal-3.5 Pro

AssemblyAI

Por lotes

El modelo de lenguaje de voz más potente de AssemblyAI — hasta 1000 frases clave

Transcribir con este modeloComparar en el playground

6 idiomas · evaluado

Acerca de Universal-3.5 Pro

Universal-3.5 Pro es un modelo de transcripción de voz a texto de AssemblyAI. En nuestras pruebas estandarizadas alcanza una tasa de error de palabra de 17.44%, ocupando el puesto n.º 21 de 35 modelos evaluados. Admite 6 idiomas y cuesta 0,003 US$/min — más económico que la mayoría de alternativas.

Su alternativa evaluada más cercana es Soniox STT (Async). Ideal para conversaciones con varios interlocutores y flujos de alto volumen y sensibles al coste.

Puntuación General

67.4

#21 de 35

Tasa de Error de Palabras

17.44%

Tasa de Error de Caracteres

10.37%

Tasa de Error de Coincidencia

16.91%

Información de Palabras Perdida

20.23%

Latencia Promedio

5.6s

Benchmarks Ejecutados

35

Tendencia de benchmark

últimas 30 ejecuciones

Tasa de error de palabra

9.85%

↓ 43.1% · 30d

hace 4 ejecuciones

última

Latencia media

5.8s

↑ 1.4% · 30d

hace 4 ejecuciones

última

Costo vs. precisión

WER general · 35 modelos

Universal-3.5 Pro

grupo · 34 modelos

abajo a la izquierda es mejor

Rendimiento por categoría

8 categorías

WER

menor es mejor

Legal

1.8%

Médico

2.6%

Técnico

3.8%

Finanzas

5.6%

Conversacional

10.2%

Cambio de Código

18.2%

General

20.6%

Ambiente Ruidoso

33.9%

CategoríaWERCERMERWILLatenciaEvaluaciones

Cambio de Código

18.20%
11.93%
17.71%
24.69%

7.5s

2

Conversacional

10.21%
6.61%
10.09%
12.27%

7.6s

2

Finanzas

5.63%
2.39%
5.56%
9.12%

9.0s

2

General

20.57%
11.23%
20.57%
23.60%

5.2s

19

Legal

1.79%
1.18%
1.77%
2.10%

6.6s

2

Médico

2.59%
0.93%
2.59%
3.70%

5.2s

2

Ambiente Ruidoso

33.85%
24.52%
29.56%
36.78%

3.5s

4

Técnico

3.76%
2.71%
3.74%
4.45%

6.6s

2

Latencia

p50 → p99 · 4 ejecuciones

Distribución de latencia

menor es mejor

5.8s

p50

5.8s

p90

5.8s

p95

5.8s

p99

Rendimiento por acento

5 acentos

AcentoWEREvaluaciones

Africano

26.15%

1

Australiano

3.08%

1

Indio

11.11%

1

Británico

0.00%

1

Estadounidense

0.00%

1

Precios

pago por segundo

Tarifa

$0.0035

/min

Facturación por segundo. Usa tu propia clave de proveedor y paga directamente al proveedor — se aplica una tarifa de enrutamiento del 5% (primeros 100 min/mes gratis).

Configurar BYOK

Estimador de costo

1 hora

$0.21

10 horas

$2.09

100 horas

$20.88

1000 horas

$208.80

Facturado por segundo de audio procesado.

API y uso

POST /api/v1/transcriptions

ID del modelo

assemblyai/universal-3-pro

Obtener una clave API

Autentica cada solicitud con tu clave API secreta como token Bearer. Genera una clave desde tu panel.

Úsalo con tu agente

Pega esto en Claude Code, Cursor, Codex o cualquier agente con terminal. Instala la CLI y la skill de OpenTranscription, y transcribe con este modelo.

Transcribe an audio file for me with OpenTranscription, using the model assemblyai/universal-3-pro.
Set it up first:
npm install -g @opentranscription/cli
ot login
npx skills add opentranscription/skills
Then run:
ot transcribe <my-file> --model assemblyai/universal-3-pro
Ask me one question at a time, and give me options to pick from rather than open questions. Look for audio files here before asking which one I mean. Leave the language alone unless I tell you what it is, since the model detects it.
This model can also label speakers with --diarize, and take a vocabulary of names and jargon with --vocab "Kubernetes,Sanjay". Offer those one at a time, and only if I have not already said.
The login step opens my browser and waits for me to approve it, so stop and tell me when you reach it. The skill covers the rest.
Skill para agentesSDK de TypeScriptSDK de PythonCLI en npm

Inicio rápido

Sube tu audio, crea un trabajo con este modelo y luego consulta el trabajo o define un webhook_url para recibir el aviso al completarse.

// npm install @opentranscription/sdk
import { readFile } from 'node:fs/promises';
import { OpenTranscription } from '@opentranscription/sdk';
const ot = new OpenTranscription({ apiKey: process.env.OT_API_KEY! });
// Uploads the audio and opens the job. The signed-URL round trip is inside.
const job = await ot.transcribe({
file: await readFile('interview.mp3'),
fileName: 'interview.mp3',
model: 'assemblyai/universal-3-pro',
language: 'de',
diarization: true,
customWords: ['Kubernetes', 'Grafana', 'Sanjay Bhattacharya'],
webhookUrl: 'https://your-app.com/webhooks/ot',
});
// We POST a signed event to that URL when the job finishes: no polling required.

Parámetros clave

file_path

string

obligatorio

Ruta de almacenamiento devuelta por el paso de subida.

model

string

obligatorio

El modelo con el que se ejecuta este trabajo.

models

string[]

Cadena ordenada de respaldo: primero el principal y luego los alternativos, en orden, si un proveedor falla.

language

string

Código de idioma ISO 639-1. Omítelo para la detección automática.

diarization

boolean

Etiqueta a los hablantes (A, B, …) en el resultado.

custom_words

string[]

Nombres, jerga y términos de producto para orientar al modelo. Hasta 1000 entradas.

vocabulary_list_id

uuid

Una lista de vocabulario guardada en tu espacio de trabajo. Se combina con custom_words si envías ambos.

webhook_url

string

URL HTTPS que recibe el resultado al completarse el trabajo. Los eventos entregados están firmados (X-OT-Signature).

title

string

Nombre visible de este trabajo en el panel. Si falta, se usa el nombre del archivo.

Respuesta

Un trabajo completado devuelve la transcripción en el Esquema Unificado de OpenTranscription (OTUS).

{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "completed",
"transcript": {
"text": "Welcome to the meeting, everyone.",
"language": "en",
"confidence": 0.97,
"segments": [
{
"id": 0,
"start": 0,
"end": 3.5,
"text": "Welcome to the meeting, everyone.",
"speaker": "A"
}
],
"words": [
{
"word": "Welcome",
"start": 0,
"end": 0.42,
"confidence": 0.99
}
]
}
}

Webhooks — sin sondeo

Enviamos un evento firmado a tu webhook_url cuando un trabajo se completa o falla; verifica la cabecera X-OT-Signature (HMAC-SHA256, rechaza si tiene más de 300 s) y desduplicado por el id del evento, luego obtén la transcripción completa con GET /api/v1/transcriptions/{id}.

import { createHmac, timingSafeEqual } from "node:crypto";
// Your signing secret from Settings → API keys.
const SECRET = process.env.OT_WEBHOOK_SECRET ?? "";
function verify(
rawBody: string,
header: string,
nowSeconds = Math.floor(Date.now() / 1000),
): boolean {
const segments = header.split(",");
// Exactly one t= segment, finite, within the replay window.
const tValues = segments.filter((s) => s.startsWith("t=")).map((s) => s.slice(2));
if (tValues.length !== 1) return false;
const t = Number(tValues[0]);
if (!Number.isFinite(t) || Math.abs(nowSeconds - t) > 300) return false;
const expected = createHmac("sha256", SECRET)
.update(`${t}.${rawBody}`)
.digest("hex");
// Header may carry multiple v1 sigs (key rotation). Match any.
return segments
.filter((s) => s.startsWith("v1="))
.some((s) => {
const got = Buffer.from(s.slice(3), "hex");
const exp = Buffer.from(expected, "hex");
return got.length === exp.length && timingSafeEqual(got, exp);
});
}
// Express example. Use the RAW body buffer, not the parsed JSON.
// The X-OT-Signature header carries t=<unix>,v1=<hmac-hex>.
app.post("/webhooks/ot", express.raw({ type: "application/json" }), (req, res) => {
const sig = req.headers["x-ot-signature"] as string;
if (!verify(req.body.toString(), sig)) {
return res.sendStatus(400);
}
const event = JSON.parse(req.body.toString());
// Dedupe on event.id (at-least-once delivery), then enqueue + return 2xx fast.
res.sendStatus(200);
});
Obtén tu clave de firma

Límite por nivel — consulta los encabezados de respuesta X-RateLimit-*.

Referencia completa de la API

Fiabilidad

últimos 30 días

Disponibilidad · 30d

88.89%

Tasa de error

11.11%

Latencia media

36.7s

Último incidente

Ninguno en 30d

Modelos similares

del mismo grupo

Más preciso

Soniox STT (Async)

Soniox

8.73% WER

$0.0017/min

Comparar →

Más barato

Whisper Large V3 Turbo

Groq

14.31% WER

$0.0007/min

Comparar →

Idiomas Soportados

AlemánInglésEspañolFrancésItalianoPortugués

Formatos Soportados

mp3wavflacm4aoggwebm

Características

Detección automáticaDiarizaciónCambio de código+2

Límites

Tamaño máx. de archivo

5 GB

Duración máx.

10 h