Logotipo de VocalStackLogotipo de VocalStack
VOCALSTACK PARA SANITY

Transcripciones que puedes consultar

Un botón Transcribir junto al audio en tus documentos de Sanity Studio. La transcripción se guarda en el documento como texto editable y frases con tiempos, así que GROQ, tu frontend y tu búsqueda la leen como cualquier otro campo.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · DESDE $0.20 POR HORA DE AUDIO
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesEpisodio 42: Construir en públicoEpisode 41: PricingEpisode 40: Hiring
TítuloEpisodio 42: Construir en público
Audio
MP3episode-042.mp346.3 MB · audio/mpeg
Transcripción
Transcribiendo31:06 / 48:20
Detener
00:00Bienvenidos de nuevo al programa. Hoy: lanzar pronto.
00:07La primera versión era tosca, y de eso se trataba.
Publish

Consúltalo con GROQ

La transcripción y sus frases con tiempos están en el documento, así que GROQ y la API GraphQL las devuelven con todo lo demás.

Progreso a la vista

El campo muestra cuánto audio se ha procesado y resiste una recarga. Detener cancela un trabajo que ya no quieres.

Los editores mandan

La transcripción es texto plano que un editor puede corregir, con el mismo historial y la misma publicación que el resto del documento.

La clave se queda en el servidor

El Studio habla con una sola ruta en tu propio servidor, que guarda la clave de API. La clave nunca llega al navegador.

CONFIGURACIÓN

Un plugin, un campo, una ruta

Añade el plugin a sanity.config.ts, un campo vocalstack.transcript junto al audio en tu esquema y la ruta de VocalStack a tu frontend (una ruta de Next.js o cualquier servidor Node o edge). La ruta guarda la clave de API, así que nunca llega al navegador.

01Instala el plugin desde GitHub y añádelo a la configuración de tu Studio.
02Añade la ruta de VocalStack a tu frontend, con tu clave de API en su entorno.
03Añade un campo vocalstack.transcript junto a un campo de archivo de audio y haz clic en Transcribir.
bash
npm install github:vocalstack/sanity-plugin
typescript
// app/api/vocalstack/[...path]/route.ts
import { createVocalStackHandler } from '@vocalstack/sanity/server'

// The key is read from VOCALSTACK_API_KEY
const handler = createVocalStackHandler({ sanity: { projectId, dataset, token } })
export { handler as GET, handler as OPTIONS, handler as POST }

// sanity.config.ts
import { vocalstack } from '@vocalstack/sanity'

export default defineConfig({
  plugins: [vocalstack({ handlerURL: 'https://www.example.com/api/vocalstack' })],
})

// schemas/episode.ts
defineField({ name: 'audio', type: 'file' }),
defineField({ name: 'transcript', type: 'vocalstack.transcript' }),
OPCIONES

Se adapta a como lo construiste

Valores predeterminados sensatos y un hook para cada punto en que tu configuración es distinta.

handlerURL

Dónde se monta la ruta de VocalStack en tu servidor. El Studio solo llama a esta dirección.

audioField

Qué campo de archivo del documento contiene el audio. Por defecto, el primero que tenga un archivo de audio.

spokenLanguage

El idioma hablado en el audio. Omítelo para detectarlo automáticamente.

fileURL

La dirección desde la que VocalStack obtiene el audio. Por defecto, la dirección del archivo en la CDN de Sanity; devuelve una firmada para archivos privados.

allowedOrigins

Qué direcciones del Studio pueden llamar a la ruta.

PRECIOS

Sin coste por el plugin

Solo pagas a VocalStack por el audio que transcribes, con la misma tarifa que el panel y la API. Facturación por segundo, con un mínimo de 5 minutos por transcripción.

ARCHIVOS$0.20por hora

Cada archivo de audio que transcribes, con hablantes, puntuación y tiempos incluidos.

Preguntas frecuentes

Ver en GitHubLeer el README