resources/audio/translations.ts (64 lines of code) (raw):

// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. import { APIResource } from "../../resource.ts"; import * as Core from "../../core.ts"; import * as TranslationsAPI from "./translations.ts"; import * as AudioAPI from "./audio.ts"; import * as TranscriptionsAPI from "./transcriptions.ts"; export class Translations extends APIResource { /** * Translates audio into English. */ create( body: TranslationCreateParams<"json" | undefined>, options?: Core.RequestOptions, ): Core.APIPromise<Translation>; create( body: TranslationCreateParams<"verbose_json">, options?: Core.RequestOptions, ): Core.APIPromise<TranslationVerbose>; create( body: TranslationCreateParams<"text" | "srt" | "vtt">, options?: Core.RequestOptions, ): Core.APIPromise<string>; create( body: TranslationCreateParams, options?: Core.RequestOptions, ): Core.APIPromise<Translation>; create( body: TranslationCreateParams, options?: Core.RequestOptions, ): Core.APIPromise<TranslationCreateResponse | string> { return this._client.post( "/audio/translations", Core.multipartFormRequestOptions({ body, ...options }), ); } } export interface Translation { text: string; } export interface TranslationVerbose { /** * The duration of the input audio. */ duration: string; /** * The language of the output translation (always `english`). */ language: string; /** * The translated text. */ text: string; /** * Segments of the translated text and their corresponding details. */ segments?: Array<TranscriptionsAPI.TranscriptionSegment>; } export type TranslationCreateResponse = Translation | TranslationVerbose; export interface TranslationCreateParams< ResponseFormat extends AudioAPI.AudioResponseFormat | undefined = | AudioAPI.AudioResponseFormat | undefined, > { /** * The audio file object (not file name) translate, in one of these formats: flac, * mp3, mp4, mpeg, mpga, m4a, ogg, wav, or webm. */ file: Core.Uploadable; /** * ID of the model to use. Only `whisper-1` (which is powered by our open source * Whisper V2 model) is currently available. */ model: (string & {}) | AudioAPI.AudioModel; /** * An optional text to guide the model's style or continue a previous audio * segment. The * [prompt](https://platform.openai.com/docs/guides/speech-to-text/prompting) * should be in English. */ prompt?: string; /** * The format of the output, in one of these options: `json`, `text`, `srt`, * `verbose_json`, or `vtt`. */ response_format?: ResponseFormat; /** * 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](https://en.wikipedia.org/wiki/Log_probability) to * automatically increase the temperature until certain thresholds are hit. */ temperature?: number; } export namespace Translations { export type Translation = TranslationsAPI.Translation; export type TranslationVerbose = TranslationsAPI.TranslationVerbose; export type TranslationCreateResponse = TranslationsAPI.TranslationCreateResponse; export type TranslationCreateParams< ResponseFormat extends AudioAPI.AudioResponseFormat | undefined = | AudioAPI.AudioResponseFormat | undefined, > = TranslationsAPI.TranslationCreateParams<ResponseFormat>; }