Skip to content

Create translation

audio.translations.create(**kwargs) -> TranslationCreateResponse
POST/audio/translations

Translates audio into English.

ParametersExpand Collapse
file: FileInput

The audio file object (not file name) translate, in one of these formats: flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm.

model: String | AudioModel

ID of the model to use. Only whisper-1 (which is powered by our open source Whisper V2 model) is currently available.

Accepts one of the following:
String
AudioModel = :"whisper-1" | :"gpt-4o-transcribe" | :"gpt-4o-mini-transcribe" | 2 more
Accepts one of the following:
:"whisper-1"
:"gpt-4o-transcribe"
:"gpt-4o-mini-transcribe"
:"gpt-4o-mini-transcribe-2025-12-15"
:"gpt-4o-transcribe-diarize"
prompt: String

An optional text to guide the model's style or continue a previous audio segment. The prompt should be in English.

response_format: :json | :text | :srt | 2 more

The format of the output, in one of these options: json, text, srt, verbose_json, or vtt.

Accepts one of the following:
:json
:text
:srt
:verbose_json
:vtt
temperature: Float

The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.

ReturnsExpand Collapse
TranslationCreateResponse = Translation { text } | TranslationVerbose { duration, language, text, segments }
Accepts one of the following:
class Translation { text }
text: String
class TranslationVerbose { duration, language, text, segments }
duration: Float

The duration of the input audio.

language: String

The language of the output translation (always english).

text: String

The translated text.

segments: Array[TranscriptionSegment { id, avg_logprob, compression_ratio, 7 more } ]

Segments of the translated text and their corresponding details.

id: Integer

Unique identifier of the segment.

avg_logprob: Float

Average logprob of the segment. If the value is lower than -1, consider the logprobs failed.

formatfloat
compression_ratio: Float

Compression ratio of the segment. If the value is greater than 2.4, consider the compression failed.

formatfloat
end_: Float

End time of the segment in seconds.

formatfloat
no_speech_prob: Float

Probability of no speech in the segment. If the value is higher than 1.0 and the avg_logprob is below -1, consider this segment silent.

formatfloat
seek: Integer

Seek offset of the segment.

start: Float

Start time of the segment in seconds.

formatfloat
temperature: Float

Temperature parameter used for generating the segment.

formatfloat
text: String

Text content of the segment.

tokens: Array[Integer]

Array of token IDs for the text content.

Create translation

require "openai"

openai = OpenAI::Client.new(api_key: "My API Key")

translation = openai.audio.translations.create(file: Pathname(__FILE__), model: :"whisper-1")

puts(translation)
{
  "text": "text"
}
Returns Examples
{
  "text": "text"
}