文字起こし、翻訳、字幕、分析を1つのAPIで
多くの音声認識APIは生のテキストを返すだけですが、Sonix APIは次の開発にすぐ使える構造化された文字起こしを返します。
以下の機能はすべてドキュメント化されたエンドポイントです。取得した文字起こしは、APIの外に出ることなく字幕、翻訳、編集済みの音声クリップ、要約に変換できます。
バッチ文字起こし
ファイルを/v1/mediaにPOSTするか、100MBを超えるファイルはfile_urlを渡すだけで、Sonixが非同期で文字起こしします。言語を指定し、keywordsで固有名詞や専門用語の認識を補正し、custom_dataで自社のIDを付与し、callback_urlを指定すれば、ジョブの完了や失敗をSonixがすぐにサーバーへ通知します。話者ごとに別チャンネルで収録した音声には、チャンネル単位で話者を判別するマルチトラック用エンドポイントを使えます。
翻訳
文字起こしが完了したら、翻訳先の言語コードをtranslationsエンドポイントにPOSTするだけで、Sonixが54以上の言語のいずれかに翻訳した文字起こしを返します。文字起こしの各エンドポイントはlanguageパラメーターを受け付けるため、英語のインタビューのスペイン語SRTファイルも、翻訳完了後は1回のGETリクエストで取得できます。
字幕とキャプション
SRTとVTTのエンドポイントは、本格的な表示制御付きの字幕ファイルを返します。max_charactersとmax_durationで字幕ごとの文字数と表示時間の上限を、subtitle_linesで1行か2行かを、speaker_displayで話者名の表示方法を指定できます。splitエンドポイントは、max_cpsの読み取り速度の上限内で文字起こし全体を字幕に再分割し、burn-inエンドポイントは、フォント、サイズ、色、アスペクト比(SNS向けの9:16や1:1を含む)を指定して字幕を動画に直接焼き込みます。
エクスポートと構造化データ
どの文字起こしも、単語ごとの開始・終了時間と話者ラベル付きのJSON、プレーンテキスト、そのまま共有できるWord文書やPDF、SRTやVTT、動画編集者向けのAvid DSファイルとして取得できます。メディアエクスポートのエンドポイントはさらに一歩進み、音声や動画そのものをハイライト部分だけに切り出したり、取り消し線を引いた部分をすべて削除したりして、MP3、WAV、MP4で書き出します。
AI分析
summarizationエンドポイントは、完成した文字起こしを分析します。文数を指定できる要約、チャプター、感情分析、テーマ・トピック分析、エンティティ抽出のほか、「このポッドキャストの宣伝ツイートを5本書いてください」のような独自のプロンプトも実行できます。
コールバックとWebhook
ポーリングのループは不要です。メディアと要約のジョブはcallback_urlを受け付け、処理が完了または失敗した時点でSonixがジョブのステータスをPOSTします。大規模に自動化するチーム向けに、ProとEnterpriseプランではイベントWebhookが追加されます。文字起こし完了、翻訳完了、ラベルやフォルダーの変更、墨消しの適用を購読でき、各通知はX-Webhook-SignatureヘッダーでHMAC-SHA256署名されるため、すべてのペイロードがSonixから送られたものかをサーバー側で検証できます。
リアルタイムストリーミング
ライブキャプションや低遅延の音声テキスト変換向けに、SonixはWebSocketによるストリーミングAPIを、エンタープライズチーム向けのアーリーアクセスとして提供しています。お申し込みはリアルタイム文字起こしのページから行えます。バッチ文字起こしは現在、ドキュメントが完全に整備され、セルフサービスでご利用いただけます。
3回のAPI呼び出しで、音声ファイルから文字起こしまで
https://api.sonix.ai/v1 にBearerトークンで認証し、ファイルを送信して、必要な形式で文字起こしを取得します。
ファイルを送信
メディアをmultipartフォームデータとして、言語、名前、任意のkeywordsとcustom_dataと一緒に送信します。
curl -XPOST https://api.sonix.ai/v1/media -H "Authorization: Bearer <API Key>" \
-F file=@my_audio.mp3 \
-F language=en \
-F name='Podcast Episode 45' \
-F keywords='Sonix, Bergamasco, Kairos, Chewbacca' \
-F custom_data='{"internal_id": "123412", "customer_email": "[email protected]"}'ステータスを確認、またはコールバックを待つ
statusがcompletedになるまでメディアオブジェクトをポーリングするか、この手順を省いてcallback_urlへの通知を待ちます。
curl -XGET https://api.sonix.ai/v1/media/qmnY1nD5 -H "Authorization: Bearer <API Key>"タイムスタンプ付きの文字起こしを取得
JSONの文字起こしをリクエストします。拡張子を.srt、.vtt、プレーンテキストに変えれば、その形式で取得できます。
curl -XGET https://api.sonix.ai/v1/media/qmnY1nD5/transcript.json -H "Authorization: Bearer <API Key>"多言語の録音ですか?language=multiを指定し、想定される言語をlanguage_hintsに列挙してください。パラメーターの完全なリファレンス、レスポンス本文、エラーコードはAPIドキュメントに掲載しています。