必要なもの
- アカウントのAPIキーまたはワークスペースのAPIキー:
Authorization: Bearer {id}.{secret} - Tiroの管理者が対象ワークスペースのVoice File Jobポリシーを有効にしていること
- transcriptLocaleHints: 最大 1 つ(任意)
- 指定しない場合、言語は自動的に検出されます
- translationLocales: 最大 5 つ(任意)
エンドツーエンドのチェックリスト
- ジョブを作成 →
{ id, uploadUri }を受け取る - 音声を
uploadUriにアップロード PUT /v1/external/voice-file/jobs/{jobId}/upload-completeを呼び出す- ジョブのステータスを完了までポーリング
- transcript と(任意で)translations を取得
- コンテンツをより深く理解するために paragraph summary を取得
Webhookで状態の変更を受け取り、ジョブを削除するにはどうすればよいですか?
ポーリングを使わずにジョブの状態変更を受け取るには、voice_file_job.created、voice_file_job.completed、voice_file_job.failed、voice_file_job.deletedを購読してください。Webhookのペイロードにはジョブのメタデータのみが含まれ、文字起こし本文は含まれません。文字起こし本文はGET /v1/external/voice-file/jobs/{jobId}/transcriptで取得してください。
どの状態のジョブでもDELETE /v1/external/voice-file/jobs/{jobId}で削除できます。Tiroは音声と生成済みの結果を削除し、削除後に届いた処理コールバックは無視します。
音声と文字起こしデータはどのように保管されますか?
アップロードした音声はTiroが管理するオブジェクトストレージに、文字起こしと翻訳の結果はTiroのサービスデータベースに保存されます。APIには自動保管期間を設定する機能がないため、データが不要になったらDELETE /v1/external/voice-file/jobs/{jobId}を呼び出してください。
アカウントのAPIキーは自身が作成したジョブのみ、ワークスペースのAPIキーは同じワークスペースのすべてのジョブにアクセスできます。ジョブを削除すると音声と文字起こし・翻訳結果も消去され、再度取得することはできません。
ポーリング戦略(推奨)
GET /v1/external/voice-file/jobs/{jobId}を指数バックオフでポーリングします- 1〜2 秒間隔から始め、4 秒、8 秒と増やし、最大 30 秒まで
- 停止条件:
- 成功:
status=COMPLETED - 失敗:
status=FAILED
- 成功:
- 成功後:
- 必ず transcript を取得:
GET /v1/external/voice-file/jobs/{jobId}/transcript - translations をリクエストした場合:
GET /v1/external/voice-file/jobs/{jobId}/translationsまたはロケール別のエンドポイント - paragraph summary を取得:
- transcript の場合:
GET /v1/external/voice-file/jobs/{jobId}/transcript/paragraph-summary - translations の場合:
GET /v1/external/voice-file/jobs/{jobId}/translations/{locale}/paragraph-summary
- transcript の場合:
- 必ず transcript を取得:
処理が正常に完了した場合の最終ステータスは
COMPLETED です。これは、transcript、translation(リクエストした場合)、およびその両方の paragraph summary を含む、すべての処理が完了したことを意味します。ファイルの制限と要件
サポートされる音声フォーマット
サポートするファイル形式は以下のとおりです。 音声フォーマット:
動画フォーマット(音声抽出):