APIs para transcribir, procesar y comprender datos de voz
Modelos de machine learning que convierten conversaciones en texto, estructura y decisiones. Con castellano, catalán, gallego y euskera de verdad. Con tus datos íntegramente dentro de la Unión Europea.
Claves de prueba ilimitadas y gratuitas. Sin tarjeta. Desde 0,0065 € el minuto de audio.
Parlem, bona tarda. En què el puc ajudar?
Agente
Bona tarda. Truco perquè m'han cobrat dues vegades el rebut de juliol.
Cliente
Ho reviso ara mateix. Em pot confirmar el DNI, si us plau?
Agente
Sí, és el [NIF] i el número de compte acaba en [IBAN].
Cliente
Empieza negativo por el cobro duplicado y termina neutro tras el compromiso de devolución.
- El cliente reclama un doble cargo del recibo de julio.
- Se confirma el duplicado y se tramita la devolución.
- 99 idiomas
- 6 con calidad medida
- Datos en la UE
- Un solo país de tratamiento
- Sin retención de audio
- Se borra al terminar
- Pago por uso
- Por segundo, sin mínimos
- Coste en la respuesta
- Desglosado por concepto
Nuestras APIs
Cuatro superficies. Un solo contrato.
Todo es REST y JSON, todo se autentica igual y todo devuelve un request_id rastreable y un bloque usage con lo que ha costado. Se empieza por una y se añaden las demás sin reescribir la integración.
Transcription API
Audio a texto con hablantes, timestamps de palabra e idioma detectado.
Understanding API
Temas, moderación, datos personales, sentimiento, resumen y tareas.
Language API
Detección automática entre 99 idiomas, con las lenguas ibéricas de verdad.
LLM & Embeddings API
Chat, JSON estructurado y búsqueda semántica con los SDK que ya usas.
Speech-to-Text
Una conversación no es un bloque de texto.
Nuestro motor de transcripción devuelve una estructura: intervenciones, hablantes con su papel, cada palabra situada en el tiempo, el idioma con su nivel de confianza y los avisos de todo lo que no salió perfecto.
callsist-scribe-1DisponibleEl modelo por defecto. Transcripción completa con diarización, timestamps de palabra, detección de idioma, puntuación y formato.
Diarización con rol, no solo con número
No basta con separar «hablante 1» y «hablante 2»: hace falta saber cuál es el agente. Cuando la separación acústica no da la talla —y en audio telefónico mono a menudo no la da— la atribución se resuelve por el contenido de la conversación, y el resultado incluye la confianza de esa decisión. Etiquetar mal es peor que no etiquetar.
Timestamps por palabra, no por bloque
Cada palabra lleva su inicio y su fin, calculados por alineación forzada dentro de nuestro motor. Es lo que permite pinchar una frase del resumen y saltar al segundo exacto del audio, silenciar un número de tarjeta sin cortar la frase, y generar subtítulos que no van medio segundo por detrás.
Texto que ya está listo para leerse
Puntuación, mayúsculas, importes, fechas, horas y números escritos como los escribiría una persona. Vocabulario personalizado por petición para los nombres de tus productos, tus tarifas y tus marcas. Y salidas en JSON, SRT, VTT y texto plano desde el mismo objeto.
Degradación con gracia, siempre
Cada etapa opcional del motor tiene un camino de fallo que produce un resultado peor pero válido, y la respuesta te dice en un array de avisos qué se degradó. Una transcripción no se pierde entera porque falle un módulo accesorio. Y lo que se degrada, no se factura.
Audio Intelligence · Callsist Understanding
Siete módulos que convierten la transcripción en información.
Todos trabajan sobre el transcript con los hablantes ya atribuidos, nunca sobre texto plano: saber quién dijo qué cambia materialmente lo que se puede concluir. Todos son opcionales, se piden por separado y se facturan por separado.
Detección de temas
topic_detection
Clasifica de qué se habló con una taxonomía de contact center de 40 categorías —incidencia técnica, facturación, baja, retención, reclamación— o con una taxonomía abierta si prefieres que salga del propio contenido. Cada tema viene con el intervalo exacto que lo justifica, así que la etiqueta es auditable y no un veredicto sin pruebas.
Devuelve: topics[] con etiqueta, relevancia y el fragmento donde aparece
Moderación de contenido
content_moderation
Marca violencia, odio, autolesión, contenido sexual, drogas y armas con una severidad graduada en lugar de un sí o no. Sirve tanto para cumplir con tus propias políticas de uso como para localizar las llamadas que un responsable de calidad tiene que escuchar antes que las demás.
Devuelve: moderation[] por categoría, con severidad de 0 a 1 y fragmentos
Redacción de datos personales
pii_redaction
Detecta nombres, teléfonos, correos, IBAN, tarjetas, NIF, direcciones, fechas de nacimiento, matrículas y datos de salud, y devuelve el texto ya redactado con la política que elijas: máscara, hash o nombre de la entidad. El 80 % de los datos personales de una llamada son números dictados de viva voz, que ningún patrón de texto caza, así que aquí trabajan tres capas encadenadas y no una expresión regular.
Devuelve: pii.entities[], text_redacted y, si lo pides, el audio silenciado
Silenciado del audio original: +0,05 €/h
Filtro de lenguaje ofensivo
profanity_filter
Léxico multilingüe propio en castellano, catalán, gallego, euskera, portugués e inglés, con verificación adicional solo de los casos dudosos. Enmascara sin destrozar el transcript, que es el fallo habitual de los filtros por lista.
Devuelve: El texto enmascarado y profanity[] con las posiciones
Sentimiento del cliente
sentiment_analysis
Analiza el sentimiento del cliente a lo largo de la conversación y detecta escalado, insatisfacción y riesgo de fuga. Solo del cliente: el parámetro no acepta otro ámbito. El Reglamento de IA prohíbe inferir emociones de trabajadores en su puesto, y un agente de contact center es un trabajador en su puesto.
Devuelve: Sentimiento por intervención del cliente más un agregado de la llamada
Solo scope: "customer". Nunca por señal acústica.
Resumen
summarization
Resumen de la llamada en el formato que necesite el destino: viñetas para la ficha del CRM, párrafo para el correo de seguimiento, titular para el listado. Admite contexto de negocio en la petición —«llamada de soporte de una comercializadora eléctrica»— y eso cambia el resultado mucho más de lo que parece.
Devuelve: summary en viñetas, párrafo o titular
Tareas y próximos pasos
action_items
Extrae los compromisos de la llamada: qué se prometió, quién lo hace y para cuándo. Es la salida que más directamente se conecta con un ticket o una tarea del CRM, y la que convierte una grabación en trabajo pendiente sin que nadie tenga que escucharla.
Devuelve: action_items[] con texto, responsable y plazo si se mencionó
Understanding Pack
Los siete módulos juntos, incluida la redacción de datos personales sobre texto. Sueltos suman 0,41 € por hora. En pack son 0,29 €, y no hay que pedir nada especial: se aplica solo cuando los pides todos.
¿Ya tienes las transcripciones hechas? Los mismos siete módulos funcionan sobre texto que nos pases directamente, en POST /v1/understand. Se factura por caracteres y cuesta lo mismo que sobre el audio equivalente: 6,90 € por millón de caracteres el pack completo.
Idiomas
99 idiomas. Cuatro que casi nadie hace bien.
Los grandes proveedores de transcripción cubren castellano e inglés a precio de materia prima y dejan fuera el catalán, el gallego y el euskera, o los tratan como una nota al pie. Para un contact center que opera en España, esa nota al pie es media operación.
Castellano
esEspañol
Acentos peninsulares y latinoamericanos, telefonía de 8 kHz y ruido de fondo.
Catalán
caCatalà
Incluido el caso que rompe a los detectores ingenuos: la llamada que saluda en castellano y sigue en catalán.
Gallego
glGalego
Con la alternancia natural con el castellano dentro de la misma conversación.
Euskera
euEuskara
Lengua aglutinante y sin parentesco con las demás: es la que más se resiente de un motor genérico.
Portugués
ptPortuguês
Europeo y brasileño.
Inglés
enEnglish
Para los equipos que operan campañas en varios mercados.
Cómo se decide el idioma
El fallo caro no es transcribir mal. Es transcribir en el idioma equivocado.
Un detector automático genérico confunde catalán con castellano, y a veces con cosas mucho peores. Nuestra cascada está pensada para eso: cuanto más nos dices, menos tiene que adivinar.
- 1
Nos dices el idioma
Si lo sabes, lo pasas en `language` y se acabó la ambigüedad. Una sola pasada, idioma forzado.
- 2
O acotas el espacio
`language_hints: ["es", "ca"]` restringe la decisión a lo que de verdad ocurre en tu campaña. Es la diferencia entre elegir entre dos y elegir entre noventa y nueve.
- 3
Nuestro detector decide
Identificación sobre varias ventanas del audio, no sobre los primeros segundos. Un «buenos días» inicial no puede decidir el idioma de una llamada de diez minutos.
- 4
Y si hay empate, se transcribe dos veces
Cuando castellano y catalán quedan a la par, se hacen las dos pasadas acotadas y gana la que el propio motor puntúa mejor. Solo la minoría ambigua pasa por aquí, y no lo pagas tú.
También transcribimos
93 idiomas másLa distinción es deliberada. En las seis lenguas de arriba medimos la calidad contra un conjunto de referencia anotado a mano y nos comprometemos con ella. En estas el motor transcribe, y no vamos a publicar una precisión que todavía no hemos medido.
Contact centers
Construido con la forma de una llamada, no de un pódcast.
Nos hemos especializado en un caso concreto: transcribir y analizar conversaciones de atención al cliente. Eso cambia decisiones de diseño en todo el recorrido, y son justo las decisiones que un motor genérico no toma.
Lo que no hacemos, y no está en el roadmap
No inferimos emociones a partir de la voz de nadie, ni analizamos el estado emocional de tus agentes. El Reglamento de IA lo prohíbe en el ámbito laboral y esa prohibición vincula también a quien fabrica el sistema, no solo a quien lo usa. El análisis de sentimiento solo acepta el ámbito del cliente; pedirlo sobre el agente devuelve un error explícito con su documentación.
Audio telefónico malo es el caso normal
Mono, 8 kHz, comprimido y con ruido de fondo. El motor está calibrado para eso, no para un pódcast grabado en un estudio. Y si puedes entregar doble canal, cada canal es un hablante y la separación deja de ser un problema: es la mejora de calidad más barata que existe.
Los datos personales que importan se dictan de viva voz
El grueso de los datos sensibles de una llamada son un DNI, un IBAN o una tarjeta que alguien lee en alto, cifra a cifra, a veces mal. Ninguna expresión regular caza eso. Aquí trabajan tres capas encadenadas, con guardas explícitas contra la sobre-redacción: un sistema que tacha el pronombre «jo» ochenta veces destroza el transcript.
Métricas objetivas de la conversación
Ratio de habla, silencios, interrupciones, velocidad y monólogos. Datos medibles sobre cómo transcurrió la llamada, no juicios sobre el estado de ánimo de nadie.
Pensado para entrar en tu CRM, no para mirarlo
Resultado por webhook con la cabecera de autenticación que tú definas, metadatos propios que viajan de ida y vuelta con cada llamada, e identificadores tuyos para casarlo con tu ficha sin mantener una tabla de correspondencias.
Privacidad y residencia de datos
La conversación con tu DPO dura cinco minutos.
Una grabación de atención al cliente contiene, casi siempre, datos personales de categoría ordinaria y a veces de categoría especial. Vender una API que los procesa sin tener resuelta esa parte es vender un problema. La tenemos resuelta, y está escrita.
Un solo país de tratamiento, dentro de la UE
El audio, las transcripciones, los vectores y las copias de seguridad se procesan y se guardan íntegramente dentro de la Unión Europea. Sin transferencias internacionales en el flujo de datos. Para banca, seguros, sanidad y sector público esto no es un plus: es un requisito de licitación.
El audio se borra al terminar
Es el comportamiento por defecto. Si te conviene conservarlo puedes elegir 24 horas, 7 días o 30, por organización o petición a petición. En modo de cero retención el audio desaparece al completar y el resultado te llega por webhook o en la primera lectura.
Tus audios no entrenan nada
Ni nuestros modelos ni los de nadie. No hay casilla que desactivar porque no existe la opción contraria. Y borrar una transcripción arrastra su audio, sus fragmentos, sus vectores y sus ficheros: no queda un huérfano en ningún sitio.
Encargado del tratamiento, con contrato
Somos encargados y tú eres el responsable. Contrato de encargo disponible para firma electrónica, lista nominativa de subencargados entregada con él, y 30 días de preaviso ante cualquier cambio.
Claves con alcance y aislamiento por organización
Permisos por clave, claves de prueba separadas de las de producción, y aislamiento por organización en cada tabla y en cada prefijo de almacenamiento, con pruebas automáticas que verifican que no hay fugas entre inquilinos.
Cifrado en tránsito y en reposo
TLS 1.3 con HSTS de extremo a extremo, y cifrado en reposo tanto del almacenamiento de objetos como de la base de datos.
Para desarrolladores
De la clave de API a la primera transcripción, en cinco minutos.
El usuario de este producto es quien lo integra. Todo lo que se puede hacer desde el panel se puede hacer por API, y el panel enseña el código de lo que acabas de hacer.
# 1 · Envía el audio. La respuesta es inmediata.
curl -X POST https://api.callsist.com/v1/transcripts \
-H "Authorization: Bearer $CALLSIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://ejemplo.com/llamada-8891.mp3",
"language": "auto",
"language_hints": ["es", "ca"],
"speaker_labels": true,
"understanding": {
"summarization": { "format": "bullets" },
"pii_redaction": { "entities": ["nif", "iban", "phone"] },
"action_items": true
},
"webhook_url": "https://tuapp.com/hooks/callsist",
"retention": "none"
}'
# → { "id": "tr_9dK2mQ4xPz", "status": "queued" }
# 2 · Recógelo cuando quieras. O espera al webhook y no preguntes.
curl https://api.callsist.com/v1/transcripts/tr_9dK2mQ4xPz \
-H "Authorization: Bearer $CALLSIST_API_KEY"
Asíncrona por diseño
El POST responde al instante con un identificador y una estimación de finalización calculada con la duración real del audio, los módulos pedidos y la profundidad de la cola en ese momento. El resultado llega por webhook, o lo recoges tú.
Idempotencia de verdad
Todos los POST admiten una clave de idempotencia con ventana de 24 horas. Reintentar tras un timeout devuelve el resultado original y no cobra dos veces. Es la diferencia entre un reintento y un susto.
Errores que se pueden programar
Códigos estables, mensajes legibles y un identificador de petición en cada respuesta. Cuando algo falle, tú tendrás el código y nosotros el rastro completo.
El coste, dentro de la respuesta
Un bloque `usage` con el total y el desglose por concepto en cada recurso facturable. Nos obliga a ser honestos y a ti te ahorra reconstruir la factura por tu cuenta.
LLM y embeddings
No hay que reescribir nada.
Los endpoints de chat y de embeddings mantienen el formato de petición y respuesta más extendido del sector, con streaming por SSE, salida JSON estructurada y llamada a herramientas. Los clientes que ya tienes funcionan cambiando la URL base y la clave.
# Mismo formato de petición y respuesta que ya habla tu cliente.
# Cambias la URL base y la clave; el resto de tu código no se entera.
curl https://api.callsist.com/v1/chat/completions \
-H "Authorization: Bearer $CALLSIST_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "callsist-llm-1-small",
"messages": [
{ "role": "system", "content": "Clasificas motivos de llamada." },
{ "role": "user", "content": "El cliente reclama un doble cargo." }
],
"response_format": { "type": "json_object" },
"stream": true
}'
Precios
Pago por uso. Ni suscripción, ni permanencia, ni mínimos.
Se paga por segundo de audio recibido y por token consumido, sobre un saldo prepago que recargas tú. Un mes sin llamadas cuesta cero euros. Los descuentos por volumen se aplican solos, sin negociar y sin comprometer horas por adelantado.
Transcripción completa
0,39 €
por hora de audio
Hablantes, timestamps de palabra, idioma y formato incluidos
Understanding Pack
0,29 €
por hora de audio
Los siete módulos de análisis, incluida la redacción de datos personales
Módulo suelto
Desde 0,02 €
por hora de audio
Solo lo que necesites, activado petición a petición
Modo de prueba
0 €
ilimitado
Integración completa con claves de test, sin tarjeta y sin caducidad
Qué significa, sin letra pequeña.
Preferimos decirlo en portada a que lo descubras integrando. Estar en beta no es una advertencia de que algo va a romperse: es que hay piezas anunciadas que todavía no están abiertas y una tarifa que se revisará con datos de uso real.
- Lo que funciona hoy
- Transcripción con hablantes y timestamps, los siete módulos de comprensión, LLM y embeddings, webhooks, panel y facturación por uso.
- Lo que todavía no
- La transcripción en tiempo real, el modelo económico de transcripción, los SDK oficiales y la documentación completa. Van llegando durante la beta.
- Qué pasa con el contrato de la API
- El versionado va en la ruta. Un cambio incompatible sería una versión nueva con doce meses de solape, no una sorpresa un martes.
- Qué pasa con los precios
- La tarifa actual es la v0 y se revisará con datos reales de uso. Cualquier cambio se avisa con antelación y nunca se aplica con efecto retroactivo.
Preguntas frecuentes
Lo que preguntan antes de firmar.
¿Guardáis los audios que os envío?
No, salvo que nos lo pidas. Por defecto el audio se borra en cuanto termina el proceso. Puedes elegir conservarlo 24 horas, 7 días o 30 días si te conviene para reprocesar o auditar, y cambiar esa política por organización o petición a petición. En modo de cero retención el audio desaparece al terminar y el resultado te llega por webhook o en la primera lectura. Borrar una transcripción arrastra su audio, sus fragmentos, sus vectores y sus ficheros: no queda un huérfano en un bucket.
¿Dónde se procesan y se guardan los datos?
Íntegramente dentro de la Unión Europea, en un único país de tratamiento. No hay transferencias internacionales en el flujo de datos de audio. Somos encargados del tratamiento y firmamos el contrato de encargo por medios electrónicos; la lista nominativa de subencargados se entrega con él y cualquier cambio se notifica con 30 días de preaviso.
¿Usáis mis audios para entrenar nada?
No. Tu audio y tus transcripciones no se usan para entrenar ni para ajustar ningún modelo, ni nuestro ni de nadie. No hay una casilla que desactivar porque no existe la opción contraria.
¿Qué significa exactamente que estáis en beta?
Que la API funciona y se puede integrar hoy, que la tarifa es la v0 y se revisará con datos reales de uso, y que hay piezas del catálogo anunciadas que aún no están abiertas. Lo que no significa: que vayamos a romper el contrato sin avisar. El versionado va en la ruta y un cambio incompatible sería una versión nueva con doce meses de solape.
¿Hay suscripción, permanencia o mínimo mensual?
Ninguna de las tres. Se paga por uso, por segundo de audio y por token, sobre un saldo prepago que recargas tú. Un mes sin llamadas cuesta cero. Los descuentos por volumen se aplican solos, sin negociar y sin comprometer horas por adelantado.
¿Puedo probar sin poner una tarjeta?
Sí. Al registrarte tienes claves de prueba ilimitadas y gratuitas: mismos códigos de error, misma forma de respuesta, mismos subtítulos. Se puede construir la integración entera —manejo de errores incluido— sin gastar un céntimo. El saldo solo hace falta para procesar audio real.
¿Cuánto tarda una transcripción?
Es un proceso asíncrono: la petición responde de inmediato con un identificador y una estimación de finalización calculada con la duración del audio, los módulos que hayas pedido y la profundidad real de la cola en ese momento. El resultado llega por webhook o lo recoges tú. Para una llamada de diez minutos, el orden de magnitud son minutos, no segundos: no somos un servicio de tiempo real todavía.
¿Analizáis el estado emocional de mis agentes?
No, y no es una limitación técnica sino una decisión. El Reglamento de IA prohíbe inferir emociones de personas en su lugar de trabajo, y esa prohibición vincula también a quien fabrica el sistema. El análisis de sentimiento solo acepta el ámbito del cliente; pedirlo sobre el agente devuelve un error explícito. Nunca inferimos emociones a partir del tono de voz, de nadie. Lo que sí damos son métricas objetivas de la conversación: ratio de habla, silencios, interrupciones y monólogos.
¿Funciona con audio telefónico malo?
Es para lo que está hecho. Mono, 8 kHz, comprimido y con ruido de centralita es el caso normal, no el difícil. Cuando la separación acústica de hablantes no da la talla —y en mono degradado a menudo no la da— el motor atribuye los turnos por el contenido y te dice con qué confianza lo ha hecho. Si puedes entregar estéreo, cada canal es un hablante y el problema desaparece: es la mejora de calidad más barata que existe.
¿Tengo que reescribir mi integración para usar vuestro LLM?
No. Los endpoints de chat y de embeddings mantienen el formato de petición y respuesta más extendido del sector, así que los SDK que ya usas funcionan cambiando la URL base y la clave de API. Dos líneas.
Prueba con una llamada tuya y compara.
Es la forma más rápida de saber si esto sirve para tu operación: un audio real, en el idioma real, con el ruido real. Las claves de prueba son gratis e ilimitadas.