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’AUDIOInterrogez-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.
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.
vocalstack.transcript à côté d’un champ de fichier audio, puis cliquez sur Transcrire.npm install github:vocalstack/sanity-plugin// 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' }),S’adapte à votre façon de construire
Des valeurs par défaut judicieuses, et un point d’accroche partout où votre configuration diffère.
handlerURLL’emplacement de la route VocalStack sur votre serveur. Le Studio n’appelle que cette adresse.
audioFieldLe champ de fichier du document qui contient l’audio. Par défaut, le premier qui contient un fichier audio.
spokenLanguageLa langue parlée dans l’audio. Omettez-la pour qu’elle soit détectée automatiquement.
fileURLL’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.
allowedOriginsLes adresses de Studio autorisées à appeler la route.
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.
Chaque fichier audio transcrit, avec locuteurs, ponctuation et horodatages inclus.