Logo VocalStackLogo VocalStack
VOCALSTACK POUR SANITY

Des transcriptions que vous pouvez interroger

Un bouton Transcrire à côté de l’audio dans vos documents Sanity Studio. La transcription est enregistrée dans le document en texte modifiable et en phrases horodatées : GROQ, votre frontend et votre recherche la lisent comme n’importe quel autre champ.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · À PARTIR DE $0.20 L’HEURE D’AUDIO
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesÉpisode 42 : Construire en publicEpisode 41: PricingEpisode 40: Hiring
TitreÉpisode 42 : Construire en public
Audio
MP3episode-042.mp346.3 MB · audio/mpeg
Transcription
Transcription en cours31:06 / 48:20
Arrêter
00:00Bon retour dans l’émission. Aujourd’hui : livrer tôt.
00:07La première version était brute, et c’était tout l’intérêt.
Publish

Interrogez-la avec GROQ

La transcription et ses phrases horodatées vivent dans le document : GROQ et l’API GraphQL les renvoient avec tout le reste.

Une progression visible

Le champ indique la part de l’audio déjà traitée et survit à un rechargement. Arrêter met fin à une tâche dont vous ne voulez plus.

Les éditeurs gardent la main

La transcription est du texte brut qu’un éditeur peut corriger, avec le même historique et la même publication que le reste du document.

La clé reste sur le serveur

Le Studio communique avec une seule route sur votre propre serveur, qui détient la clé API. La clé n’atteint jamais le navigateur.

CONFIGURATION

Un plugin, un champ, une route

Ajoutez le plugin à sanity.config.ts, un champ vocalstack.transcript à côté de l’audio dans votre schéma, et la route VocalStack à votre frontend (une route Next.js, ou n’importe quel serveur Node ou edge). La route détient la clé API, qui n’atteint donc jamais le navigateur.

01Installez le plugin depuis GitHub et ajoutez-le à la configuration de votre Studio.
02Ajoutez la route VocalStack à votre frontend, avec votre clé API dans son environnement.
03Ajoutez un champ vocalstack.transcript à côté d’un champ de fichier audio, puis cliquez sur Transcrire.
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' }),
OPTIONS

S’adapte à votre façon de construire

Des valeurs par défaut judicieuses, et un point d’accroche partout où votre configuration diffère.

handlerURL

L’emplacement de la route VocalStack sur votre serveur. Le Studio n’appelle que cette adresse.

audioField

Le champ de fichier du document qui contient l’audio. Par défaut, le premier qui contient un fichier audio.

spokenLanguage

La langue parlée dans l’audio. Omettez-la pour qu’elle soit détectée automatiquement.

fileURL

L’adresse depuis laquelle VocalStack récupère l’audio. Par défaut, l’adresse du fichier sur le CDN de Sanity ; renvoyez une adresse signée pour les fichiers privés.

allowedOrigins

Les adresses de Studio autorisées à appeler la route.

TARIFS

Aucuns frais de plugin

Vous ne payez à VocalStack que l’audio que vous transcrivez, au même tarif que le tableau de bord et l’API. Facturé à la seconde, avec un minimum de 5 minutes par transcription.

FICHIERS$0.20de l’heure

Chaque fichier audio transcrit, avec locuteurs, ponctuation et horodatages inclus.

Questions fréquentes

Voir sur GitHubLire le README