音声文字起こし
音声をテキストに文字起こしし、話者分離、タイムスタンプ、非言語イベントタグ、JSON/SRT/VTT 字幕を生成します。
音声をテキストに文字起こしし、発話ごとのタイムスタンプ、任意の話者分離(ダイアライゼーション)、非言語オーディオイベントタグ、そのまま使える JSON・SRT・VTT 字幕ファイルを返します。
Agent の主経路
Universal Skill から MCP ツール beatra.audio.transcribe を使います。このツールは課金対象で、非同期タスクを返します。
- ローカルの音声ファイルを
beatra.assets.uploadでアップロードし、返されたartifact_idを使います(またはhttps_urlを直接渡します)。 - 対応言語の広さ、非言語イベントのタグ付け、価格を比較する場合は
capability: "speech_to_text"でbeatra.models.listを呼びます。それ以外はmodelを省略するか"auto"を指定します(既定でdoubao-seed-asr-2.0が選ばれ、tag_audio_events: trueまたはnum_speakersを指定した場合は利用可能であれば自動的にelevenlabs-scribe-v3へルーティングされます)。 - 不透明な
client_request_idを 1 つ作り、最終的な引数を一度だけ送信します。 beatra.tasks.getで終端状態までポーリングし、その単一タスク応答から全文を取得します。
AI ガイド
AI 連携 Markdown
独自アプリケーションに組み込む場合は、この API ガイドを Claude や Codex などにコピーできます。
ツール引数
audio(必須。MCP・REST ともに入力エイリアスとしてsourceも受け付けます):artifact 参照({"type": "artifact", "artifact_id": "..."})または HTTPS URL({"type": "https_url", "url": "https://..."})。MP3、WAV、M4A、AAC、FLAC、OGG、Opus を受け付けます。長さは0.5秒以上3,600秒(60 分)以下、ファイルサイズは100 MiB以下です。60 分を超える音声は課金前に422 invalid_request(details.reason: "audio_too_long")で拒否されます(先にbeatra.audio.processのoperation: "trim"で分割してください。オーディオ処理を参照)。model(任意、既定"auto"):"auto"、"doubao-seed-asr-2.0"、"elevenlabs-scribe-v3"のいずれか。language(任意、既定"auto"):"auto"で自動言語検出、または"zh"、"yue"、"en"、"ja"などの BCP-47 / ISO-639-1 タグを指定します。diarize(任意、真偽値、既定false):segments[]ごとに話者ラベル(speaker_0、speaker_1など)を付与します。num_speakers(任意、整数1〜32):elevenlabs-scribe-v3における話者数のヒント。指定すると自動的にdiarize: trueが有効になり、model: "auto"では利用可能な場合elevenlabs-scribe-v3が選択されます。tag_audio_events(任意、真偽値、既定false):elevenlabs-scribe-v3で拍手や音楽などの非言語オーディオイベントをタグ付けします。model: "auto"でtag_audio_events: trueを渡すと利用可能な場合elevenlabs-scribe-v3が自動選択され、model: "doubao-seed-asr-2.0"を明示指定してtag_audio_events: trueやnum_speakersを渡した場合はoption_ignored警告を添えて実行します。subtitles(任意、真偽値、既定true):追加料金なしで JSON・SRT・VTT の字幕ファイル一式を生成・保存します。model_options(任意、オブジェクト):モデル固有の拡張指定を渡すための前方互換フィールドです。
モデルとコスト
選択可能なモデル、対応コントロール、価格の最新の事実源は capability: "speech_to_text" を指定した beatra.models.list です。
文字起こしは入力音声の切り上げ分数(ceil(duration_seconds / 60))に基づく前払いで、1 リクエストあたりの最低料金があります。
| モデル | 単価 | 最低料金 | 特徴 |
|---|---|---|---|
doubao-seed-asr-2.0(auto 既定) | 15 クレジット / 切り上げ分 | 60 クレジット(<= 4 分) | 中国語(標準語・方言)、英語、日本語、多言語の高精度認識。話者分離とタイムスタンプに対応。 |
elevenlabs-scribe-v3 | 21 クレジット / 切り上げ分 | 61 クレジット(<= 2 分) | 90 以上の言語、最大 32 人の話者分離(num_speakers)、タイムスタンプ、非言語 tag_audio_events((laughter)、(applause)、(music) など)に対応。 |
結果と字幕
タスクが成功すると、output に全文テキスト、発話単位のセグメント、任意のオーディオイベント、字幕バンドルが入ります。
subtitlesは音声合成の字幕とまったく同じfiles.{json, srt, vtt}形式のため、後続の動画合成や字幕パイプラインでそのまま利用できます。- 無音や発話のないオーディオも正常な結果として成功し、
text: ""、segments: []、subtitles: nullを返します。 - タスク一覧(
GET /v1/tasks)では長い書き起こしはtruncated: true付きの要約になります。完全なtextとsegments[]はbeatra.tasks.getまたはGET /v1/tasks/{task_id}で取得してください。
タスクの状態とリカバリー
queued と running は失敗ではありません。同じ task_id をポーリングし続けてください。作成応答を失った場合は同じ client_request_id で同一の引数を再送し、入力が変わったら新しい ID を使います。失敗したタスクは自動で返金されます。
REST で呼び出す
プロトコル直結の統合では、固定の Idempotency-Key ヘッダーを付けて POST /v1/audio/transcriptions と共有タスクエンドポイントを使えます。生成されたAPI リファレンスを参照してください。推奨の統合方法は Skill + MCP です。REST は Agent ではないカスタムアプリケーション向けです。
最終更新