Transcrições que você pode consultar
Um botão Transcrever ao lado do áudio nos seus documentos do Sanity Studio. A transcrição é salva no documento como texto editável e frases com tempo, então GROQ, o seu frontend e a sua busca a leem como qualquer outro campo.
SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · A PARTIR DE $0.20 POR HORA DE ÁUDIOConsulte com GROQ
A transcrição e suas frases com tempo ficam no documento, então GROQ e a API GraphQL as retornam junto com todo o resto.
Progresso que você vê
O campo mostra quanto do áudio já foi feito e sobrevive a um recarregamento. Parar encerra um trabalho que você não quer mais.
Os editores no comando
A transcrição é texto simples que um editor pode corrigir, com o mesmo histórico e publicação do resto do documento.
A chave fica no servidor
O Studio conversa com uma rota no seu próprio servidor, que guarda a chave de API. A chave nunca chega ao navegador.
Um plugin, um campo, uma rota
Adicione o plugin ao sanity.config.ts, um campo vocalstack.transcript ao lado do áudio no seu schema e a rota do VocalStack ao seu frontend (uma rota do Next.js, ou qualquer servidor Node ou edge). A rota guarda a chave de API, então ela nunca chega ao navegador.
vocalstack.transcript ao lado de um campo de arquivo de áudio e clique em Transcrever.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' }),Encaixa no jeito que você construiu
Padrões sensatos, e um hook para cada ponto em que a sua configuração é diferente.
handlerURLOnde a rota do VocalStack está montada no seu servidor. O Studio chama apenas esse endereço.
audioFieldQual campo de arquivo do documento contém o áudio. Por padrão, o primeiro com um arquivo de áudio.
spokenLanguageO idioma falado no áudio. Omita para detectá-lo automaticamente.
fileURLO endereço de onde o VocalStack busca o áudio. Por padrão, o endereço do arquivo na CDN do Sanity; retorne um endereço assinado para arquivos privados.
allowedOriginsQuais endereços do Studio podem chamar a rota.
Sem taxa de plugin
Você paga ao VocalStack só pelo áudio que transcreve, com a mesma tarifa do Painel e da API. Cobrança por segundo, com mínimo de 5 minutos por transcrição.
Cada arquivo de áudio que você transcreve, com locutores, pontuação e tempos incluídos.