Logo VocalStackLogo VocalStack
VOCALSTACK DLA SANITY

Transkrypcje, które można odpytywać

Przycisk Transkrybuj obok audio w dokumentach Sanity Studio. Transkrypcja jest zapisywana w dokumencie jako edytowalny tekst i zdania ze znacznikami czasu, więc GROQ, Twój frontend i wyszukiwarka odczytują ją jak każde inne pole.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · OD $0.20 ZA GODZINĘ AUDIO
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesOdcinek 42: Budowanie publicznieEpisode 41: PricingEpisode 40: Hiring
TytułOdcinek 42: Budowanie publicznie
Audio
MP3episode-042.mp346.3 MB · audio/mpeg
Transkrypcja
Transkrypcja w toku31:06 / 48:20
Zatrzymaj
00:00Witamy ponownie w programie. Dziś: wczesne wydawanie.
00:07Pierwsza wersja była surowa i właśnie o to chodziło.
Publish

Odpytuj ją przez GROQ

Transkrypcja i jej zdania ze znacznikami czasu są zapisane w dokumencie, więc GROQ i API GraphQL zwracają je razem z resztą.

Postęp, który widać

Pole pokazuje, ile audio jest gotowe, i przetrwa przeładowanie strony. Stop kończy zadanie, którego już nie potrzebujesz.

Redaktorzy mają kontrolę

Transkrypcja to zwykły tekst, który redaktor może poprawić, z tą samą historią i publikacją co reszta dokumentu.

Klucz zostaje na serwerze

Studio komunikuje się z jedną trasą na Twoim własnym serwerze, która przechowuje klucz API. Klucz nigdy nie trafia do przeglądarki.

KONFIGURACJA

Jedna wtyczka, jedno pole, jedna trasa

Dodaj wtyczkę do sanity.config.ts, pole vocalstack.transcript obok audio w schemacie, a trasę VocalStack do frontendu (trasę Next.js albo dowolny serwer Node lub edge). Trasa przechowuje klucz API, więc nigdy nie trafia on do przeglądarki.

01Zainstaluj wtyczkę z GitHuba i dodaj ją do konfiguracji Studio.
02Dodaj trasę VocalStack do frontendu, z kluczem API w jej środowisku.
03Dodaj pole vocalstack.transcript obok pola pliku audio, a potem kliknij Transkrybuj.
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' }),
OPCJE

Dopasowana do Twojej konfiguracji

Rozsądne ustawienia domyślne i hook dla każdego miejsca, w którym Twoja konfiguracja się różni.

handlerURL

Gdzie trasa VocalStack jest zamontowana na Twoim serwerze. Studio wywołuje tylko ten adres.

audioField

Które pole pliku w dokumencie zawiera audio. Domyślnie pierwsze z plikiem audio.

spokenLanguage

Język, w którym mówi się w nagraniu. Pomiń, aby wykryć go automatycznie.

fileURL

Adres, z którego VocalStack pobiera audio. Domyślnie adres pliku w CDN Sanity; dla plików prywatnych zwróć adres podpisany.

allowedOrigins

Które adresy Studio mogą wywoływać trasę.

CENNIK

Bez opłaty za wtyczkę

Płacisz VocalStack tylko za transkrybowane audio, według tej samej stawki co w Panelu i API. Rozliczane co sekundę, z minimum 5 min za transkrypcję.

PLIKI$0.20za godzinę

Każdy transkrybowany plik audio, z mówcami, interpunkcją i znacznikami czasu.

Najczęściej zadawane pytania

Zobacz na GitHubiePrzeczytaj README