VocalStack ロゴVocalStack ロゴ
VOCALSTACK FOR SANITY

クエリできる文字起こし

Sanity Studio のドキュメントで、音声の横に「文字起こし」ボタンを。文字起こしは編集可能なテキストとタイミング付きの文としてドキュメントに保存されるため、GROQ もフロントエンドも検索も、ほかのフィールドと同じように読み取れます。

SANITY STUDIO 3+ · REACT 18+ · NODE 20+ · 音声 1 時間あたり $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 キーを保持する自社サーバー上の 1 つのルートだけ。キーがブラウザに届くことはありません。

セットアップ

プラグイン 1 つ、フィールド 1 つ、ルート 1 つ

sanity.config.ts にプラグインを、スキーマの音声の横に vocalstack.transcript フィールドを、フロントエンドに VocalStack のルート(Next.js のルート、または任意の Node サーバーやエッジサーバー)を追加します。API キーはルートが保持するため、ブラウザに届くことはありません。

01GitHub からプラグインをインストールし、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 が音声を取得するアドレス。デフォルトでは Sanity の CDN 上のファイルのアドレス。非公開ファイルには署名付きアドレスを返してください。

allowedOrigins

ルートを呼び出せる Studio のアドレス。

料金

プラグイン料金なし

VocalStack へのお支払いは文字起こしした音声の分だけ。料金はダッシュボードや API と同じです。秒単位の課金で、文字起こし 1 件あたりの最低料金は 5 分 です。

ファイル$0.201 時間あたり

文字起こしするすべての音声ファイル。話者、句読点、タイミング付き。

よくある質問

GitHub で見るREADME を読む