Logo VocalStackLogo VocalStack
VOCALSTACK PENTRU SANITY

Transcrieri pe care le poți interoga

Un buton Transcrie lângă audio în documentele din Sanity Studio. Transcrierea este salvată în document ca text editabil și propoziții cu timpi, așa că GROQ, frontendul și căutarea ta o citesc ca pe orice alt câmp.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · DE LA $0.20 PE ORĂ DE AUDIO
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesEpisodul 42: Construim în publicEpisode 41: PricingEpisode 40: Hiring
TitluEpisodul 42: Construim în public
Audio
MP3episode-042.mp346.3 MB · audio/mpeg
Transcriere
Se transcrie31:06 / 48:20
Oprește
00:00Bine ați revenit la emisiune. Astăzi: lansăm devreme.
00:07Prima versiune a fost brută, și exact asta era ideea.
Publish

Interoghează cu GROQ

Transcrierea și propozițiile ei cu timpi stau în document, așa că GROQ și API-ul GraphQL le returnează împreună cu tot restul.

Progres pe care îl vezi

Câmpul arată cât din audio e gata și rezistă la o reîncărcare. Stop oprește o sarcină de care nu mai ai nevoie.

Editorii au controlul

Transcrierea este text simplu pe care un editor îl poate corecta, cu același istoric și aceeași publicare ca restul documentului.

Cheia rămâne pe server

Studio comunică cu o singură rută de pe propriul tău server, care păstrează cheia API. Cheia nu ajunge niciodată în browser.

CONFIGURARE

Un plugin, un câmp, o rută

Adaugă pluginul în sanity.config.ts, un câmp vocalstack.transcript lângă audio în schema ta și ruta VocalStack în frontend (o rută Next.js sau orice server Node ori edge). Ruta păstrează cheia API, așa că aceasta nu ajunge niciodată în browser.

01Instalează pluginul de pe GitHub și adaugă-l în configurația Studio.
02Adaugă ruta VocalStack în frontend, cu cheia API în mediul ei.
03Adaugă un câmp vocalstack.transcript lângă un câmp de fișier audio, apoi dă clic pe Transcrie.
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' }),
OPȚIUNI

Se potrivește cu felul în care l-ai construit

Setări implicite rezonabile și un hook pentru fiecare loc în care configurația ta diferă.

handlerURL

Unde este montată ruta VocalStack pe serverul tău. Studio apelează doar această adresă.

audioField

Ce câmp de fișier din document conține audio. Implicit, primul care are un fișier audio.

spokenLanguage

Limba vorbită în audio. Omite-o ca să fie detectată automat.

fileURL

Adresa de la care VocalStack preia audio. Implicit, adresa fișierului pe CDN-ul Sanity; returnează una semnată pentru fișierele private.

allowedOrigins

Ce adrese de Studio pot apela ruta.

PREȚURI

Fără taxă pentru plugin

Plătești către VocalStack doar audio pe care îl transcrii, la același tarif ca în Panoul de control și API. Facturare pe secundă, cu un minim de 5 minute per transcriere.

FIȘIERE$0.20pe oră

Fiecare fișier audio pe care îl transcrii, cu vorbitori, punctuație și timpi incluși.

Întrebări frecvente

Vezi pe GitHubCitește README