Транскрипти, які можна запитувати
Кнопка «Транскрибувати» біля аудіо у ваших документах Sanity Studio. Транскрипт зберігається в документі як редагований текст і речення з таймінгом, тож GROQ, ваш фронтенд і пошук читають його, як і будь-яке інше поле.
SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · ВІД $0.20 ЗА ГОДИНУ АУДІОЗапитуйте через GROQ
Транскрипт і його речення з таймінгом зберігаються в документі, тож GROQ і GraphQL API повертають їх разом з усім іншим.
Прогрес на виду
Поле показує, скільки аудіо вже оброблено, і зберігає стан після перезавантаження. «Стоп» завершує завдання, яке вам більше не потрібне.
Редактори все контролюють
Транскрипт — це звичайний текст, який редактор може виправити, з тією самою історією та публікацією, що й решта документа.
Ключ залишається на сервері
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 хв за транскрипцію.
Кожен аудіофайл, який ви транскрибуєте, разом із мовцями, пунктуацією та таймінгом.