VocalStack-logoVocalStack-logo
VOCALSTACK VIR SANITY

Transkripsies waarop jy navraag kan doen

’n Transkribeer-knoppie langs die oudio in jou Sanity Studio-dokumente. Die transkripsie word op die dokument as redigeerbare teks en getimede sinne gestoor, so GROQ, jou frontend en jou soektog lees dit soos enige ander veld.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · VANAF $0.20 PER UUR OUDIO
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesEpisode 42: Bou in die openbaarEpisode 41: PricingEpisode 40: Hiring
TitelEpisode 42: Bou in die openbaar
Oudio
MP3episode-042.mp346.3 MB · audio/mpeg
Transkripsie
Transkribeer tans31:06 / 48:20
Stop
00:00Welkom terug by die program. Vandag: vroeg vrystel.
00:07Die eerste weergawe was rof, en dit was juis die punt.
Publish

Doen navraag daarop met GROQ

Die transkripsie en sy getimede sinne woon op die dokument, so GROQ en die GraphQL-API gee hulle saam met alles anders terug.

Vordering wat jy kan sien

Die veld wys hoeveel oudio klaar is en oorleef ’n herlaai. Stop beëindig ’n taak wat jy nie meer wil hê nie.

Redakteurs bly in beheer

Die transkripsie is gewone teks wat ’n redakteur kan korrigeer, met dieselfde geskiedenis en publikasie as die res van die dokument.

Sleutel bly op die bediener

Die Studio praat met een roete op jou eie bediener, wat die API-sleutel hou. Die sleutel bereik nooit die blaaier nie.

OPSTELLING

Een inprop, een veld, een roete

Voeg die inprop by sanity.config.ts, ’n vocalstack.transcript-veld langs die oudio in jou skema, en die VocalStack-roete by jou frontend (’n Next.js-roete, of enige Node- of edge-bediener). Die roete hou die API-sleutel, so dit bereik nooit die blaaier nie.

01Installeer die inprop vanaf GitHub en voeg dit by jou Studio-config.
02Voeg die VocalStack-roete by jou frontend, met jou API-sleutel in sy omgewing.
03Voeg ’n vocalstack.transcript-veld langs ’n oudiolêerveld by, en klik dan Transkribeer.
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' }),
OPSIES

Pas by hoe jy dit gebou het

Sinvolle verstekke, en ’n haak vir elke plek waar jou opstelling verskil.

handlerURL

Waar die VocalStack-roete op jou bediener gemonteer is. Die Studio roep net hierdie adres.

audioField

Watter lêerveld op die dokument die oudio bevat. By verstek die eerste een met ’n oudiolêer.

spokenLanguage

Die taal wat in die oudio gepraat word. Laat dit weg om dit outomaties te bespeur.

fileURL

Die adres waarvandaan VocalStack die oudio haal. By verstek die lêer se adres op Sanity se CDN; gee ’n getekende een terug vir privaat lêers.

allowedOrigins

Watter Studio-adresse die roete mag roep.

PRYSE

Geen inpropfooi nie

Jy betaal VocalStack net vir die oudio wat jy transkribeer, teen dieselfde tarief as die Paneelbord en die API. Per sekonde gefaktureer, met ’n minimum van 5 minute per transkripsie.

LÊERS$0.20per uur

Elke oudiolêer wat jy transkribeer, met sprekers, leestekens en tydsberekening ingesluit.

Gereelde vrae

Bekyk op GitHubLees die README