Logo VocalStackLogo VocalStack
VOCALSTACK CHO SANITY

Bản phiên âm bạn có thể truy vấn

Nút Phiên âm bên cạnh âm thanh trong các tài liệu Sanity Studio của bạn. Bản phiên âm được lưu trên tài liệu dưới dạng văn bản có thể chỉnh sửa và các câu có mốc thời gian, nên GROQ, frontend và công cụ tìm kiếm của bạn đọc nó như mọi trường khác.

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · TỪ $0.20 MỖI GIỜ ÂM THANH
acme.sanity.studio/structure/episode;42
AcmeStructureVision
ContentEpisodesHostsPages
EpisodesTập 42: Xây dựng công khaiEpisode 41: PricingEpisode 40: Hiring
Tiêu đềTập 42: Xây dựng công khai
Âm thanh
MP3episode-042.mp346.3 MB · audio/mpeg
Bản phiên âm
Đang phiên âm31:06 / 48:20
Dừng
00:00Chào mừng các bạn quay lại chương trình. Hôm nay: phát hành sớm.
00:07Phiên bản đầu tiên còn thô, và đó chính là mục đích.
Publish

Truy vấn bằng GROQ

Bản phiên âm và các câu có mốc thời gian nằm trên tài liệu, nên GROQ và GraphQL API trả về chúng cùng mọi thứ khác.

Tiến độ bạn nhìn thấy được

Trường cho biết bao nhiêu âm thanh đã xong và vẫn giữ nguyên sau khi tải lại trang. Dừng sẽ kết thúc một tác vụ bạn không còn cần.

Biên tập viên vẫn nắm quyền

Bản phiên âm là văn bản thuần mà biên tập viên có thể sửa, với cùng lịch sử và quy trình xuất bản như phần còn lại của tài liệu.

Khóa ở lại trên máy chủ

Studio chỉ giao tiếp với một route trên máy chủ của chính bạn, nơi giữ khóa API. Khóa không bao giờ đến trình duyệt.

THIẾT LẬP

Một plugin, một trường, một route

Thêm plugin vào sanity.config.ts, một trường vocalstack.transcript cạnh âm thanh trong schema, và route VocalStack vào frontend của bạn (một route Next.js, hoặc bất kỳ máy chủ Node hay edge nào). Route giữ khóa API, nên khóa không bao giờ đến trình duyệt.

01Cài đặt plugin từ GitHub và thêm vào cấu hình Studio của bạn.
02Thêm route VocalStack vào frontend, với khóa API trong biến môi trường của nó.
03Thêm một trường vocalstack.transcript cạnh trường tệp âm thanh, rồi nhấp Phiên âm.
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' }),
TÙY CHỌN

Phù hợp với cách bạn xây dựng

Mặc định hợp lý, và một hook cho mọi chỗ thiết lập của bạn khác biệt.

handlerURL

Nơi route VocalStack được gắn trên máy chủ của bạn. Studio chỉ gọi địa chỉ này.

audioField

Trường tệp nào trên tài liệu chứa âm thanh. Mặc định là trường đầu tiên có tệp âm thanh.

spokenLanguage

Ngôn ngữ được nói trong âm thanh. Bỏ trống để tự động nhận diện.

fileURL

Địa chỉ VocalStack dùng để lấy âm thanh. Mặc định là địa chỉ của tệp trên CDN của Sanity; trả về địa chỉ có chữ ký cho tệp riêng tư.

allowedOrigins

Những địa chỉ Studio nào được phép gọi route.

BẢNG GIÁ

Không có phí plugin

Bạn chỉ trả cho VocalStack phần âm thanh bạn phiên âm, theo cùng mức giá như Bảng điều khiển và API. Tính phí theo giây, tối thiểu 5 phút cho mỗi bản phiên âm.

TỆP$0.20mỗi giờ

Mọi tệp âm thanh bạn phiên âm, đã bao gồm người nói, dấu câu và mốc thời gian.

Câu hỏi thường gặp

Xem trên GitHubĐọc README