VocalStack लोगोVocalStack लोगो
SANITY के लिए VOCALSTACK

ऐसे ट्रांसक्रिप्ट जिन्हें आप क्वेरी कर सकें

आपके Sanity Studio डॉक्यूमेंट में ऑडियो के बगल में एक ट्रांसक्राइब बटन। ट्रांसक्रिप्ट डॉक्यूमेंट पर एडिट किए जा सकने वाले टेक्स्ट और समयबद्ध वाक्यों के रूप में सेव होता है, इसलिए GROQ, आपका फ़्रंटएंड और आपकी सर्च उसे किसी भी दूसरे फ़ील्ड की तरह पढ़ते हैं।

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · $0.20 प्रति घंटे ऑडियो से शुरू
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
Episodesएपिसोड 42: सबके सामने बनानाEpisode 41: PricingEpisode 40: Hiring
शीर्षकएपिसोड 42: सबके सामने बनाना
ऑडियो
MP3episode-042.mp346.3 MB · audio/mpeg
ट्रांसक्रिप्ट
ट्रांसक्राइब हो रहा है31:06 / 48:20
रोकें
00:00शो में फिर से आपका स्वागत है। आज: जल्दी लॉन्च करना।
00:07पहला वर्ज़न कच्चा था, और यही तो मक़सद था।
Publish

GROQ से क्वेरी करें

ट्रांसक्रिप्ट और उसके समयबद्ध वाक्य डॉक्यूमेंट में रहते हैं, इसलिए GROQ और GraphQL API उन्हें बाकी सब के साथ लौटाते हैं।

दिखने वाली प्रगति

फ़ील्ड दिखाता है कि कितना ऑडियो हो चुका है और रीलोड के बाद भी बना रहता है। जो जॉब अब नहीं चाहिए, उसे रोकें से खत्म करें।

नियंत्रण एडिटर के हाथ में

ट्रांसक्रिप्ट सादा टेक्स्ट है जिसे एडिटर ठीक कर सकता है, और उसका इतिहास और पब्लिशिंग बाकी डॉक्यूमेंट जैसा ही है।

कुंजी सर्वर पर रहती है

Studio आपके अपने सर्वर के एक रूट से बात करता है, जिसके पास API कुंजी रहती है। कुंजी कभी ब्राउज़र तक नहीं पहुँचती।

सेटअप

एक प्लगइन, एक फ़ील्ड, एक रूट

प्लगइन को sanity.config.ts में जोड़ें, अपने स्कीमा में ऑडियो के बगल में vocalstack.transcript फ़ील्ड, और VocalStack रूट को अपने फ़्रंटएंड में (एक Next.js रूट, या कोई भी Node या edge सर्वर)। API कुंजी रूट के पास रहती है, इसलिए वह कभी ब्राउज़र तक नहीं पहुँचती।

01GitHub से प्लगइन इंस्टॉल करें और उसे अपने Studio कॉन्फ़िग में जोड़ें।
02VocalStack रूट को अपने फ़्रंटएंड में जोड़ें, उसके एनवायरनमेंट में अपनी API कुंजी के साथ।
03ऑडियो फ़ाइल फ़ील्ड के बगल में vocalstack.transcript फ़ील्ड जोड़ें, फिर ट्रांसक्राइब पर क्लिक करें।
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' }),
विकल्प

जैसा आपने बनाया, वैसा ही फ़िट

समझदार डिफ़ॉल्ट, और हर उस जगह के लिए एक हुक जहाँ आपका सेटअप अलग है।

handlerURL

आपके सर्वर पर VocalStack रूट कहाँ माउंट है। Studio सिर्फ़ इसी पते को कॉल करता है।

audioField

डॉक्यूमेंट का कौन-सा फ़ाइल फ़ील्ड ऑडियो रखता है। डिफ़ॉल्ट रूप से, ऑडियो फ़ाइल वाला पहला फ़ील्ड।

spokenLanguage

ऑडियो में बोली गई भाषा। अपने-आप पहचान के लिए इसे छोड़ दें।

fileURL

वह पता जहाँ से VocalStack ऑडियो लेता है। डिफ़ॉल्ट रूप से, Sanity के CDN पर फ़ाइल का पता; निजी फ़ाइलों के लिए साइन किया हुआ पता लौटाएँ।

allowedOrigins

कौन-से Studio पते रूट को कॉल कर सकते हैं।

कीमतें

कोई प्लगइन शुल्क नहीं

आप VocalStack को सिर्फ़ उसी ऑडियो के लिए भुगतान करते हैं जिसे आप ट्रांसक्राइब करते हैं, डैशबोर्ड और API वाली दर पर ही। बिलिंग प्रति सेकंड, हर ट्रांसक्रिप्शन पर कम से कम 5 मिनट।

फ़ाइलें$0.20प्रति घंटा

हर ऑडियो फ़ाइल जिसे आप ट्रांसक्राइब करते हैं, स्पीकर्स, विराम चिह्न और टाइमिंग सहित।

अक्सर पूछे जाने वाले सवाल

GitHub पर देखेंREADME पढ़ें