Лагатып 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