نصوص مُفرَّغة يمكنك الاستعلام عنها
زر «فرّغ نصيًا» بجانب الصوت في مستندات Sanity Studio. يُحفظ النص المُفرَّغ في المستند نصًا قابلًا للتعديل وجملًا مُوقّتة، فتقرؤه GROQ وواجهتك الأمامية وبحثك كأي حقل آخر.
SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · من $0.20 لكل ساعة صوتاستعلم عنه باستخدام GROQ
يوجد النص المُفرَّغ وجمله المُوقّتة في المستند، فتُعيدها GROQ وواجهة GraphQL مع كل شيء آخر.
تقدّم يمكنك رؤيته
يُظهر الحقل مقدار ما اكتمل من الصوت ويبقى بعد إعادة تحميل الصفحة. ويُنهي «إيقاف» أي مهمة لم تعد تريدها.
المحررون يبقون أصحاب القرار
النص المُفرَّغ نص عادي يمكن للمحرر تصحيحه، بالسجل نفسه وطريقة النشر نفسها التي لبقية المستند.
المفتاح يبقى على الخادم
يتواصل Studio مع مسار واحد على خادمك، وهو الذي يحتفظ بمفتاح API. لا يصل المفتاح إلى المتصفح أبدًا.
إضافة واحدة، حقل واحد، مسار واحد
أضف الإضافة إلى sanity.config.ts، وحقل vocalstack.transcript بجانب الصوت في مخططك، ومسار VocalStack إلى واجهتك الأمامية (مسار Next.js، أو أي خادم Node أو edge). يحتفظ المسار بمفتاح API، فلا يصل إلى المتصفح أبدًا.
vocalstack.transcript بجانب حقل ملف صوتي، ثم انقر «فرّغ نصيًا».npm install github:vocalstack/sanity-plugin// 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 الصوت. افتراضيًا، عنوان الملف على شبكة CDN الخاصة بـ Sanity؛ أعِد عنوانًا موقّعًا للملفات الخاصة.
allowedOriginsعناوين Studio المسموح لها باستدعاء المسار.
لا رسوم على الإضافة
تدفع لـ VocalStack فقط مقابل الصوت الذي تفرّغه، بالسعر نفسه المعتمد في لوحة التحكم وواجهة API. تُحتسب بالثانية، بحد أدنى 5 دقائق لكل تفريغ نصي.
كل ملف صوتي تفرّغه نصيًا، مع المتحدثين وعلامات الترقيم والتوقيتات.