エンドポイント
文字起こし(STT)
POST /audio/transcriptions で Whisper、GPT-4o Transcribe、Deepgram、Voxtral などにより音声をテキストへ変換します。multipart と JSON ボディの両方の送り方、レスポンス、料金、エラーを説明します。
プレイグラウンドで試すWhisper、GPT-4o Transcribe、Deepgram、Voxtral などの文字起こしモデルで、音声をテキストに変換します(音声認識、STT)。エンドポイントは OpenAI の POST /audio/transcriptions に従うため、client.audio.transcriptions.create(...) が変更なしで動作します。
POST https://api14.com/api/v1/audio/transcriptions
リクエスト
音声ファイルを含む multipart/form-data(OpenAI SDK が送る形式)か、JSON ボディを送信します。
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
file | file | はい | 音声ファイル: mp3、mp4、m4a、wav、webm、ogg、flac。 |
model | string | はい | 文字起こしモデルの ID。例: openai/whisper-1。 |
language | string | いいえ | ISO-639-1 コード(en、de)。精度と速度が向上します。 |
prompt | string | いいえ | 語彙のヒント、または直前のセグメントのテキスト。 |
response_format | string | いいえ | json(デフォルト)、text、srt、vtt、verbose_json(対応するモデルのみ)。 |
temperature | number | いいえ | サンプリング温度。0 から 1。 |
リクエストボディの上限は、デフォルトで 25 MB です。それより大きいファイルは 413 payload_too_large を返すため、長い録音は分割してください。
cURL での multipart
curl https://api14.com/api/v1/audio/transcriptions \
-H "Authorization: Bearer sk-api14-..." \
-F model=openai/whisper-1 \
-F file=@meeting.mp3 \
-F language=en
JSON ボディ
対応するモデルでは、音声を base64 にした JSON も受け付けます。
{
"model": "openai/whisper-1",
"input_audio": { "data": "<base64>", "format": "mp3" },
"language": "en"
}
例
import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.audio.transcriptions.create({
model: "openai/whisper-1",
file: fs.createReadStream("audio.mp3"),
});
console.log(result.text);
レスポンス
{
"text": "Thanks everyone for joining. Let's start with the roadmap.",
"usage": { "type": "duration", "seconds": 42, "cost": 0.0042 }
}
response_format が "text"、srt、vtt の場合、ボディは JSON ではなくプレーンテキストになります。
料金
文字起こしは、モデルの表示価格(「$ / minute」、トークン課金のモデルではトークンあたり)で課金されます。料金は usage.cost で返され、USD 残高から差し引かれます。
エラー
| ステータス | コード | 発生条件 |
|---|---|---|
| 400 | invalid_body | multipart ボディを解析できなかった。 |
| 400 | model_required | model フィールドがない。 |
| 402 | insufficient_balance | USD 残高が $0。 |
| 404 | model_not_found | モデル ID が不明、または無効化されている。 |
| 413 | payload_too_large | ファイルがボディのサイズ上限を超えている。 |
エラーを参照してください。