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 کلید روٹ کے پاس رہتی ہے، اس لیے وہ کبھی براؤزر تک نہیں پہنچتی۔

01پلگ اِن GitHub سے انسٹال کریں اور اسے اپنی 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 پڑھیں