DEV Community

LeoJulieta
LeoJulieta

Posted on

Meta Muse: Transcribe y separa 20 voces en tiempo real

Meta Muse: la IA que separa y transcribe hasta 20 voces en tiempo real (2024)


Introducción

¿Te imaginas transcribir una mesa redonda con diez participantes sin levantar ni un lápiz? Con Meta Muse eso ya es posible: la nueva herramienta de IA de Meta separa y transcribe simultáneamente hasta 20 voces en una única pista de audio. Gracias a su arquitectura de separación de fuentes y a modelos multilingües, Muse abre la puerta a podcasts colaborativos, reuniones híbridas y servicios de traducción instantánea sin necesidad de equipos caros ni procesos manuales.

En este artículo verás cómo funciona, cómo se compara con Whisper y Google Meet Live Captions, casos de uso reales, y, lo más importante, una guía paso‑a‑paso para integrar la API de Muse en un stack Node.js + React. También incluimos una tabla de precios, una infografía del flujo de datos y un checklist de privacidad (GDPR/CCPA).


1. Arquitectura resumida

Componente Qué hace Tecnologías
Separador de fuentes Descompone la pista en 20 canales de voz independientes ConvTasNet + Demucs
Detector de idioma Identifica automáticamente el idioma de cada canal Modelo multilingüe de 120 lenguas
Transcriptor Convierte cada canal en texto con timestamps Whisper‑large‑v2 adaptado
Post‑procesador Normaliza puntuación, corrige nombres propios y genera subtítulos Transformers finetuneados en datos de podcasts

El flujo completo se muestra en la siguiente infografía:

Flujo de datos de Meta Muse


2. Comparativa rápida (Muse vs. Competidores)

Métrica Meta Muse Whisper (OpenAI) Google Meet Live Captions Descript Overdub
Voces simultáneas 20 2 (requiere segmentación) 1 (voz principal) 1
Idiomas soportados 120+ 96 30 30
Latencia ~1 s (streaming) 3‑5 s (batch) ~0.5 s (solo voz) 2 s
Precio (por hora) $0.12 (Free), $0.08 (Pro) $0.25 (API) Incluido en G Workspace $0.15
Privacidad Cifrado TLS 1.3, retención 24 h (opción “no‑almacenamiento”) Retención 30 días Retención 30 días Retención 24 h

Conclusión: Muse supera a los competidores cuando necesitas transcribir varios hablantes a la vez y mantener un coste bajo.


3. Casos de uso reales

Caso Problema Solución con Muse
Podcast multihost 8 participantes en distintas ciudades, edición manual de pistas. Muse separa y transcribe cada voz en tiempo real; el editor recibe 8 archivos de texto listos para publicar.
Reunión híbrida Subtítulos automáticos solo para el presentador. Muse genera subtítulos por hablante, facilitando la identificación de quién dice qué.
Servicio de traducción simultánea Necesidad de traducir 5 idiomas en una conferencia. El detector multilingüe identifica el idioma de cada canal y la API devuelve texto que se envía a traductores automáticos.

4. Integración paso a paso (Node.js + React)

4.1. Registro y obtención de la clave API

  1. Accede a la consola de desarrolladores de Meta: https://developers.meta.com/muse
  2. Crea una nueva aplicación → Crear clave API → Copia el token.

4.2. Instalación de dependencias

npm install @meta/muse-sdk axios dotenv
Enter fullscreen mode Exit fullscreen mode

4.3. Configuración del backend (Node.js)

// server.js
require('dotenv').config();
const express = require('express');
const { MuseClient } = require('@meta/muse-sdk');
const app = express();

const muse = new MuseClient({
  apiKey: process.env.MUSE_API_KEY,
  region: 'eu-west-1'   // o 'us-east-1'
});

app.post('/transcribe', async (req, res) => {
  try {
    const { audioUrl, languages } = req.body;   // audioUrl = S3 o blob público
    const job = await muse.startTranscription({
      source: audioUrl,
      maxSpeakers: 20,
      languages,               // ej.: ['es', 'en']
      realtime: true
    });

    // Polling sencillo
    const result = await muse.waitForResult(job.id);
    res.json(result);
  } catch (e) {
    console.error(e);
    res.status(500).send('Error en la transcripción');
  }
});

app.listen(3000, () => console.log('API listening on :3000'));
Enter fullscreen mode Exit fullscreen mode

4.4. Frontend (React)

// TranscribePanel.tsx
import React, { useState } from 'react';
import axios from 'axios';

export const TranscribePanel = () => {
  const [file, setFile] = useState<File | null>(null);
  const [transcript, setTranscript] = useState<string>('');

  const upload = async () => {
    if (!file) return;
    // 1️⃣ Subir a S3 (omitir detalle)
    const audioUrl = await uploadToS3(file);

    // 2️⃣ Llamar al backend
    const { data } = await axios.post('/transcribe', {
      audioUrl,
      languages: ['es']
    });

    // 3️⃣ Mostrar resultados
    const merged = data.speakers
      .map((s: any) => `${s.name}: ${s.text}`)
      .join('\n');
    setTranscript(merged);
  };

  return (
    <div>
      <input type="file" accept="audio/*" onChange={e => setFile(e.target.files?.[0] ?? null)} />
      <button onClick={upload}>Transcribir con Muse</button>
      <pre>{transcript}</pre>
    </div>
  );
};
Enter fullscreen mode Exit fullscreen mode

Tip: Usa realtime: true para obtener los subtítulos mientras el audio se está reproduciendo. El SDK emite eventos onPartialResult que puedes renderizar en tiempo real.

4.5. Gestión de errores y reintentos

muse.on('error', (err) => {
  console.warn('Transcripción falló, reintentando...', err);
  // lógica de back‑off exponencial
});
Enter fullscreen mode Exit fullscreen mode

5. Checklist de privacidad (GDPR / CCPA)

Acción Comentario
1 Cifrado TLS 1.3 en todas las llamadas Configurado por defecto en el SDK
2 Cifrado en reposo AES‑256 para archivos temporales Verifica la política de tu bucket S3
3 Retención 24 h o activar “no‑almacenamiento” Añade retain: false al crear el job
4 Consentimiento explícito del hablante Guarda el registro de aceptación antes de enviar audio
5 Auditoría de logs (IP, timestamp, jobId) Exporta a tu SIEM para trazabilidad
6 Evaluación de sesgo – revisa métricas por idioma Usa el endpoint /metrics del SDK para comparar precisión

6. Tabla de precios (abril 2024)

Plan Precio por hora de audio Max. duración por sesión Incluye “no‑almacenamiento”
Free $0.12 30 min Sí (limitado a 5 GB/mes)
Pro $0.08 8 h Sí (ilimitado)
Enterprise Negociado Ilimitado Sí, con SLA 99.9 %

Los precios incluyen IVA en la UE y están sujetos a cambios trimestrales.


7. Preguntas frecuentes

1. ¿Cuántas voces puede reconocer Muse y cuál es el límite de duración?

Hasta 20 voces simultáneas. En el plan Free la sesión máxima es de 30 min; en Pro y Enterprise llega a 8 h continuas sin pérdida de precisión.

2. ¿Qué idiomas soporta y cómo funciona la detección automática?

Más de 120 idiomas y dialectos. La detección

Top comments (0)