音声文字起こし
音声ファイルをテキストに変換する /v1/audio/transcriptions の使い方です。
対応モデル
音声文字起こしは /v1/audio/transcriptions です。テキスト生成とは別サーフェスのため、これらのモデル ID は GET /v1/models には含まれません(GET /v1/audio/models で対応モデルと単価を確認できます)。トライアルキーは対象外です。
| モデル ID | モデル名 | 精度 | 単価 |
|---|---|---|---|
whisper-large-v3 | Whisper Large V3自社DC 利用モデル openai/whisper-large-v3 | FP16 | ¥0.03 / 秒 ¥1.8 / 分 |
whisper-large-v3-turbo | Whisper Large V3 Turbo自社DC 利用モデル openai/whisper-large-v3-turbo | FP16 | ¥0.025 / 秒 ¥1.5 / 分 |
使い方
OpenAI Audio API 互換の multipart/form-data なので、OpenAI SDK の audio.transcriptions.create がそのまま使えます。
from openai import OpenAI
client = OpenAI(
base_url="https://api.router.supa.ai/v1",
api_key="supa_...",
)
with open("meeting.mp3", "rb") as f:
resp = client.audio.transcriptions.create(
model="whisper-large-v3",
file=f,
language="ja", # 省略すると自動判定
)
print(resp.text)curl https://api.router.supa.ai/v1/audio/transcriptions \ -H "Authorization: Bearer supa_..." \ -F file="@meeting.mp3" \ -F model="whisper-large-v3" \ -F language="ja"
タイムスタンプが必要なときは response_format=verbose_json を指定します。segments に区間ごとの開始・終了秒が入り、timestamp_granularities[]=word を足すと words に単語単位の タイムスタンプも返ります。
curl https://api.router.supa.ai/v1/audio/transcriptions \ -H "Authorization: Bearer supa_..." \ -F file="@meeting.mp3" \ -F model="whisper-large-v3-turbo" \ -F response_format="verbose_json" \ -F "timestamp_granularities[]=word"
パラメータと課金
fileは mp3 / mp4 / m4a / wav / flac / ogg / webm を受け付けます。上限は 25 MB です。長い録音は分割して送ってください(圧縮形式の方が同じ長さでも小さく、 128 kbps の MP3 なら約 25 分が目安です)。response_formatはjson(既定)/verbose_json/textのいずれかです。srtとvttには対応していません (verbose_jsonのsegmentsから組み立ててください)。language(ISO-639-1、例ja)・prompt・temperature(0〜1)を指定できます。languageを省略すると音声から自動判定します。日本語と分かっているときは指定した方が安定します。- 課金は音声の長さ(秒)です。1 秒未満は切り上げ、最低 1 秒として計算し、レスポンスの
usage.secondsに課金した秒数を返します (例: 3.4 秒の音声は 4 秒)。トークン数には依存しません。 定額プランの対象外で、クレジットから消費します。 - ストリーミングには対応していません(
streamは 400 を返します)。 1 ファイルの処理は同期で返り、長い音声ほど待ち時間が伸びます。 - 音声ファイル・文字起こし結果はゼロデータ保持(ZDR)の対象で、処理後に保存しません。 利用履歴に残るのは課金した秒数と料金だけです。