VocalStack-logotypVocalStack-logotyp
VOCALSTACK FÖR SANITY

Transkript du kan fråga efter

En Transkribera-knapp bredvid ljudet i dina Sanity Studio-dokument. Transkriptet sparas i dokumentet som redigerbar text och tidsatta meningar, så att GROQ, din frontend och din sökning läser det som vilket annat fält som helst.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · FRÅN $0.20 PER TIMME LJUD
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesAvsnitt 42: Att bygga öppetEpisode 41: PricingEpisode 40: Hiring
RubrikAvsnitt 42: Att bygga öppet
Ljud
MP3episode-042.mp346.3 MB · audio/mpeg
Transkript
Transkriberar31:06 / 48:20
Stoppa
00:00Välkommen tillbaka till programmet. I dag: att släppa tidigt.
00:07Den första versionen var grov, och det var hela poängen.
Publish

Fråga med GROQ

Transkriptet och dess tidsatta meningar ligger i dokumentet, så GROQ och GraphQL-API:t returnerar dem med allt annat.

Förlopp du kan se

Fältet visar hur mycket ljud som är klart och överlever en omladdning. Stoppa avslutar ett jobb du inte längre vill ha.

Redaktörer bestämmer

Transkriptet är vanlig text som en redaktör kan rätta, med samma historik och publicering som resten av dokumentet.

Nyckeln stannar på servern

Studion pratar med en enda rutt på din egen server, som håller API-nyckeln. Nyckeln når aldrig webbläsaren.

KONFIGURATION

Ett tillägg, ett fält, en rutt

Lägg till tillägget i sanity.config.ts, ett vocalstack.transcript-fält bredvid ljudet i ditt schema och VocalStack-rutten i din frontend (en Next.js-rutt eller valfri Node- eller edge-server). Rutten håller API-nyckeln, så den når aldrig webbläsaren.

01Installera tillägget från GitHub och lägg till det i din Studio-konfiguration.
02Lägg till VocalStack-rutten i din frontend, med din API-nyckel i dess miljö.
03Lägg till ett vocalstack.transcript-fält bredvid ett ljudfilsfält och klicka sedan på Transkribera.
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' }),
ALTERNATIV

Passar hur du byggde det

Vettiga standardval, och en hook för varje ställe där din uppsättning skiljer sig.

handlerURL

Var VocalStack-rutten är monterad på din server. Studion anropar bara den här adressen.

audioField

Vilket filfält i dokumentet som innehåller ljudet. Som standard det första med en ljudfil.

spokenLanguage

Språket som talas i ljudet. Utelämna det för att identifiera det automatiskt.

fileURL

Adressen VocalStack hämtar ljudet från. Som standard filens adress på Sanitys CDN; returnera en signerad adress för privata filer.

allowedOrigins

Vilka Studio-adresser som får anropa rutten.

PRISER

Ingen tilläggsavgift

Du betalar VocalStack bara för ljudet du transkriberar, till samma pris som i översikten och API:t. Debiteras per sekund, med minst 5 minuter per transkribering.

FILER$0.20per timme

Varje ljudfil du transkriberar, med talare, interpunktion och tider inkluderade.

Vanliga frågor

Visa på GitHubLäs README