Лого на 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