Naar inhoud springen
API-referentie
API-referentie

OpenAI transcriptie spraak naar tekst

Transcribeer audiobestanden tot 25 MB met Whisper of gpt-transcribe.

01

Overzicht

Gebruik het eindpunt voor spraak naar tekst en lees het resultaat uit dezelfde respons.

Snelstart

  1. Maak een API-sleutel aan en stel deze in als RUNAPI_API_KEY.
  2. Stuur een POST-verzoek waarvan de body overeenkomt met het verzoekschema.
  3. Lees het resultaat uit de body van de geslaagde respons.

Eindpunt

POST /v1/audio/transcriptions
Basis-URL
https://runapi.ai
API-versie
v1
Authenticatie
Authorization: Bearer YOUR_API_TOKEN
02

Ondersteunde modellen

Open een modelpagina voor actuele prijzen, snelheidslimieten en details over commercieel gebruik.

03

Verzoekschema

JSON-body

Stuur alleen de velden die voor dit eindpunt zijn gedeclareerd.

gpt-transcribe9 velden
filestring
Verplicht

Audiobestandsupload, maximaal 25 MB.

keywordsarray
Optioneel

Termen die aanvullende herkennningsbegeleiding moeten ontvangen.

languagestring
Optioneel

Audiotaal als ISO-639-1-code.

languagesarray
Optioneel

Kandidaat-audiotalen als ISO-639-1-codes.

modelstring
Optioneel

Transcriptiemodel.

Toegestane waarden: gpt-transcribe
promptstring
Optioneel

Optionele tekst die de transcriptiestijl en woordenschat stuurt.

response_formatstring
Optioneel

Formaat van de responsebody.

Toegestane waarden: json, text
streamboolean
Optioneel

Of een gestreamde respons wordt aangevraagd wanneer ondersteund.

temperaturenumber
Optioneel

Steekproeftemperatuur van 0 tot 1.

Bereik: 0 - 1
whisper-18 velden
filestring
Verplicht

Audiobestandsupload, maximaal 25 MB.

languagestring
Optioneel

Audiotaal als ISO-639-1-code.

modelstring
Optioneel

Transcriptiemodel.

Toegestane waarden: whisper-1
promptstring
Optioneel

Optionele tekst die de transcriptiestijl en woordenschat stuurt.

response_formatstring
Optioneel

Formaat van de responsebody.

Toegestane waarden: json, text, srt, verbose_json, vtt
streamboolean
Optioneel

Of een gestreamde respons wordt aangevraagd wanneer ondersteund.

temperaturenumber
Optioneel

Steekproeftemperatuur van 0 tot 1.

Bereik: 0 - 1
timestamp_granularitiesarray
Optioneel

Tijdstempeldetail opgenomen in uitgebreide JSON-antwoorden.

Itemlimiet: 2
04

Succesvol antwoord

HTTP 200

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "oneOf": [
    {
      "properties": {
        "duration": {
          "type": "number"
        },
        "language": {
          "type": "string"
        },
        "logprobs": {
          "items": {
            "properties": {
              "bytes": {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              "logprob": {
                "type": "number"
              },
              "token": {
                "type": "string"
              }
            },
            "type": "object",
            "unevaluatedProperties": false
          },
          "type": "array"
        },
        "segments": {
          "items": {
            "properties": {
              "avg_logprob": {
                "type": "number"
              },
              "compression_ratio": {
                "type": "number"
              },
              "end": {
                "type": "number"
              },
              "id": {
                "type": "integer"
              },
              "no_speech_prob": {
                "type": "number"
              },
              "seek": {
                "type": "integer"
              },
              "start": {
                "type": "number"
              },
              "temperature": {
                "type": "number"
              },
              "text": {
                "type": "string"
              },
              "tokens": {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              }
            },
            "type": "object",
            "unevaluatedProperties": false
          },
          "type": "array"
        },
        "task": {
          "type": "string"
        },
        "text": {
          "type": "string"
        },
        "usage": {
          "properties": {
            "input_token_details": {
              "properties": {
                "audio_tokens": {
                  "type": "integer"
                },
                "text_tokens": {
                  "type": "integer"
                }
              },
              "type": "object",
              "unevaluatedProperties": false
            },
            "input_tokens": {
              "type": "integer"
            },
            "output_tokens": {
              "type": "integer"
            },
            "seconds": {
              "type": "number"
            },
            "total_tokens": {
              "type": "integer"
            },
            "type": {
              "type": "string"
            }
          },
          "type": "object",
          "unevaluatedProperties": false
        },
        "words": {
          "items": {
            "properties": {
              "end": {
                "type": "number"
              },
              "start": {
                "type": "number"
              },
              "word": {
                "type": "string"
              }
            },
            "required": [
              "word",
              "start",
              "end"
            ],
            "type": "object",
            "unevaluatedProperties": false
          },
          "type": "array"
        }
      },
      "required": [
        "text"
      ],
      "type": "object",
      "unevaluatedProperties": false
    },
    {
      "type": "string"
    }
  ]
}

Responsvoorbeeld

JSON
{
  "text": "Welcome to RunAPI."
}
05

Fouten

HTTP 401

POST /v1/audio/transcriptions

Dit antwoord heeft geen body.

06

Fouten

HTTP 400

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "invalid_request",
    "message": "Invalid request"
  }
}
07

Fouten

HTTP 402

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "insufficient_balance",
    "message": "Insufficient balance"
  }
}
08

Fouten

HTTP 429

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "api_token_credit_limit_exceeded",
    "message": "API key credit limit exceeded"
  }
}
09

Fouten

HTTP 409

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "request_conflict",
    "message": "The request uses features that are not supported for the selected model"
  }
}
10

Fouten

HTTP 429

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit reached. Please retry later."
  }
}
11

Fouten

HTTP 503

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "service_unavailable",
    "message": "Service under maintenance, please try again later"
  }
}
12

Fouten

HTTP 504

POST /v1/audio/transcriptions

Responsschema
JSON
{
  "properties": {
    "error": {
      "properties": {
        "code": {
          "type": "string"
        },
        "limit_cents": {
          "type": "integer"
        },
        "message": {
          "type": "string"
        },
        "reset_at": {
          "format": "date-time",
          "type": [
            "string",
            "null"
          ]
        },
        "used_cents": {
          "type": "integer"
        },
        "window": {
          "enum": [
            "1h",
            "1d",
            "7d",
            "daily",
            "weekly",
            "monthly",
            "lifetime"
          ],
          "type": "string"
        }
      },
      "required": [
        "code",
        "message"
      ],
      "type": "object",
      "unevaluatedProperties": false
    }
  },
  "required": [
    "error"
  ],
  "type": "object",
  "unevaluatedProperties": false
}

Responsvoorbeeld

JSON
{
  "error": {
    "code": "timeout_error",
    "message": "The request timed out"
  }
}
13

Gegenereerde codevoorbeelden

Gebruik cURL rechtstreeks, of installeer een SDK voor uw taal. Elk voorbeeld dient het gevalideerde verzoek in dat in deze referentie wordt getoond.

Installeren

Shell
pip install runapi-openai-transcription
PYTHON
import os
from runapi.openai_transcription import OpenaiTranscriptionClient

client = OpenaiTranscriptionClient(api_key=os.environ["RUNAPI_API_KEY"])
result = client.speech_to_text.run(
  file="audio.mp3",
  model="whisper-1",
  response_format="json"
)