הלוגו של VocalStackהלוגו של VocalStack
VOCALSTACK ל־SANITY

תמלילים שאפשר לשלוף

כפתור תמלול ליד השמע במסמכי 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.
02מוסיפים את הנתיב של VocalStack לחזית שלכם, עם מפתח ה־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 מושך את השמע. כברירת מחדל, כתובת הקובץ ב־CDN של Sanity; לקבצים פרטיים החזירו כתובת חתומה.

allowedOrigins

אילו כתובות Studio רשאיות לפנות לנתיב.

מחירים

בלי תשלום על התוסף

משלמים ל־VocalStack רק על השמע שמתמללים, באותו תעריף כמו בלוח הבקרה וב־API. החיוב לפי שנייה, עם מינימום של 5 דקות לכל תמלול.

קבצים$0.20לשעה

כל קובץ שמע שאתם מתמללים, כולל דוברים, פיסוק ותזמונים.

שאלות נפוצות

לצפייה ב־GitHubלקריאת ה־README