openapi: 3.1.0 info: title: Friendli Suite API Reference Container.Audio Serverless.Audio API description: This is an OpenAPI reference of Friendli Suite API. termsOfService: https://friendli.ai/terms-of-service contact: name: FriendliAI Support Team email: support@friendli.ai version: 0.1.0 servers: - url: https://api.friendli.ai tags: - name: Serverless.Audio paths: /serverless/v1/audio/transcriptions: post: tags: - Serverless.Audio summary: Audio transcriptions description: Transcribe an audio file into text. operationId: serverlessAudioTranscriptions security: - token: [] parameters: - name: X-Friendli-Team in: header required: false schema: anyOf: - type: string - type: 'null' description: ID of team to run requests as (optional parameter). title: X-Friendli-Team description: ID of team to run requests as (optional parameter). requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/ServerlessAudioTranscriptionBody' responses: '200': description: Successfully transcribed the audio file. content: application/json: schema: $ref: '#/components/schemas/ServerlessAudioTranscriptionSuccess' examples: Example: value: text: Hello, how are you? usage: type: tokens input_tokens: 20 output_tokens: 10 total_tokens: 30 input_audio_length_ms: 18000 processed_audio_length_ms: 24000 input_token_details: audio_tokens: 10 text_tokens: 10 '422': description: Unprocessable Entity x-speakeasy-name-override: transcribe x-speakeasy-usage-example: tags: - file-upload x-mint: metadata: title: Model APIs Audio Transcriptions sidebarTitle: Audio Transcriptions og:title: Model APIs Audio Transcriptions description: Transcribe an audio file into text. og:description: Transcribe an audio file into text. href: /openapi/model-apis/audio-transcriptions content: 'Transcribe an audio file into text. See available models at [this pricing table](/guides/model-apis/pricing#billing-methods). To request successfully, it is mandatory to enter a **Personal API Key** (e.g. flp_XXX) value in the **Bearer Token** field. Refer to the [authentication section](/openapi/introduction#authentication) on our introduction page to learn how to acquire this variable and [visit here](https://friendli.ai/suite/~/setting/keys) to generate your API Key. When streaming mode is used (i.e., `stream` option is set to `true`), the response is in MIME type `text/event-stream`. Otherwise, the content type is `application/json`. You can view the schema of the streamed sequence of chunk objects in streaming mode [here](/openapi/model-apis/audio-transcriptions-chunk-object). You can explore examples on the [Friendli Model APIs](https://friendli.ai/get-started/model-apis) playground and adjust settings with just a few clicks.' /serverless/v1/audio/transcriptions#stream: post: tags: - Serverless.Audio summary: Stream audio transcriptions description: Transcribe an audio file into text. operationId: serverlessAudioTranscriptionsStream security: - token: [] parameters: - name: X-Friendli-Team in: header required: false schema: anyOf: - type: string - type: 'null' description: ID of team to run requests as (optional parameter). title: X-Friendli-Team description: ID of team to run requests as (optional parameter). requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/ServerlessAudioTranscriptionStreamBody' responses: '200': description: Successfully transcribed the audio file. content: text/event-stream: x-speakeasy-sse-sentinel: '[DONE]' examples: Example: value: 'data: {"type":"transcript.text.delta","delta":"The"} data: {"type":"transcript.text.delta","delta":" quick"} ... data: {"type":"transcript.text.done","text":"The quick brown fox jumps over the lazy dog.","usage":{"type":"tokens","input_tokens":20,"output_tokens":10,"total_tokens":30,"input_audio_length_ms":18000,"processed_audio_length_ms":24000,"input_token_details":{"audio_tokens":10,"text_tokens":10}}} data: [DONE] ' schema: $ref: '#/components/schemas/ServerlessAudioTranscriptionStreamSuccess' '422': description: Unprocessable Entity x-speakeasy-name-override: stream x-mint: metadata: title: Model APIs Stream Audio Transcriptions sidebarTitle: Stream Audio Transcriptions og:title: Model APIs Stream Audio Transcriptions description: Transcribe an audio file into text. og:description: Transcribe an audio file into text. content: 'Transcribe an audio file into text. See available models at [this pricing table](/guides/model-apis/pricing#billing-methods). To request successfully, it is mandatory to enter a **Personal API Key** (e.g. flp_XXX) value in the **Bearer Token** field. Refer to the [authentication section](/openapi/introduction#authentication) on our introduction page to learn how to acquire this variable and [visit here](https://friendli.ai/suite/~/setting/keys) to generate your API Key. When streaming mode is used (i.e., `stream` option is set to `true`), the response is in MIME type `text/event-stream`. Otherwise, the content type is `application/json`. You can view the schema of the streamed sequence of chunk objects in streaming mode [here](/openapi/model-apis/audio-transcriptions-chunk-object). You can explore examples on the [Friendli Model APIs](https://friendli.ai/get-started/model-apis) playground and adjust settings with just a few clicks.' components: schemas: AudioTranscriptionResult: properties: text: type: string title: Text description: The transcribed text. usage: $ref: '#/components/schemas/AudioTranscriptionUsage' type: object required: - text - usage title: AudioTranscriptionResult ServerlessAudioTranscriptionBody: properties: model: type: string title: Model description: Code of the model to use. See [available model list](https://friendli.ai/docs/guides/model-apis/pricing#billing-methods). examples: - openai/whisper-large-v3 file: type: string format: binary title: File description: 'The audio file object (not file name) to transcribe, in one of these formats: mp3, wav, flac, ogg, and many other standard audio formats.' chunking_strategy: anyOf: - type: string const: auto - $ref: '#/components/schemas/ServerVadChunkingStrategy' - type: 'null' title: Chunking Strategy description: Controls how the audio is cut into chunks. When set to `"auto"`, the server first normalizes loudness and then uses voice activity detection (VAD) to choose boundaries. `server_vad` object can be provided to tweak VAD detection parameters manually. If unset, the audio is transcribed as a single block. language: anyOf: - type: string - type: 'null' title: Language description: The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format will improve accuracy and latency. stream: anyOf: - type: boolean - type: 'null' title: Stream description: Whether to stream the transcription result. When set to `true`, the transcription is sent as [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format) once generated. default: false temperature: anyOf: - type: number - type: 'null' title: Temperature description: 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. type: object required: - model - file title: ServerlessAudioTranscriptionBody example: file: '@/path/to/file/audio.mp3' model: openai/whisper-large-v3 ServerlessAudioTranscriptionStreamSuccess: $ref: '#/components/schemas/StreamedAudioTranscriptionResult' title: ServerlessAudioTranscriptionStreamSuccess ServerVadChunkingStrategy: properties: type: type: string const: server_vad title: Type description: Must be set to `server_vad` to enable manual chunking using server side VAD. prefix_padding_ms: anyOf: - type: integer - type: 'null' title: Prefix Padding Ms description: Amount of audio to include before the VAD detected speech (in milliseconds). default: 300 silence_duration_ms: anyOf: - type: integer - type: 'null' title: Silence Duration Ms description: Duration of silence to detect speech stop (in milliseconds). With shorter values the model will respond more quickly, but may jump in on short pauses from the user. default: 200 threshold: anyOf: - type: number - type: 'null' title: Threshold description: Sensitivity threshold (0.0 to 1.0) for voice activity detection. A higher threshold will require louder audio to activate the model, and thus might perform better in noisy environments. default: 0.5 type: object required: - type title: ServerVadChunkingStrategy AudioTranscriptionUsage: properties: type: type: string const: tokens title: Type description: The type of the usage object. Always `tokens` for this variant. input_tokens: type: integer title: Input Tokens description: Number of input tokens billed for this request. output_tokens: type: integer title: Output Tokens description: Number of output tokens generated. total_tokens: type: integer title: Total Tokens description: Total number of tokens used (input + output). input_audio_length_ms: type: integer title: Input Audio Length Ms description: The length of the input audio in milliseconds. processed_audio_length_ms: type: integer title: Processed Audio Length Ms description: The length of the processed audio in milliseconds. input_token_details: anyOf: - $ref: '#/components/schemas/AudioTranscriptionInputTokenDetails' - type: 'null' description: Details about the input tokens billed for this request. type: object required: - type - input_tokens - output_tokens - total_tokens - input_audio_length_ms - processed_audio_length_ms title: AudioTranscriptionUsage ServerlessAudioTranscriptionSuccess: $ref: '#/components/schemas/AudioTranscriptionResult' title: ServerlessAudioTranscriptionSuccess AudioTranscriptionInputTokenDetails: properties: audio_tokens: type: integer title: Audio Tokens description: Number of audio tokens billed for this request. text_tokens: type: integer title: Text Tokens description: Number of text tokens billed for this request. type: object required: - audio_tokens - text_tokens title: AudioTranscriptionInputTokenDetails StreamedAudioTranscriptionResult: properties: data: $ref: '#/components/schemas/StreamedAudioTranscriptionData' type: object required: - data title: StreamedAudioTranscriptionResult ServerlessAudioTranscriptionStreamBody: properties: model: type: string title: Model description: Code of the model to use. See [available model list](https://friendli.ai/docs/guides/model-apis/pricing#billing-methods). examples: - openai/whisper-large-v3 file: type: string format: binary title: File description: 'The audio file object (not file name) to transcribe, in one of these formats: mp3, wav, flac, ogg, and many other standard audio formats.' chunking_strategy: anyOf: - type: string const: auto - $ref: '#/components/schemas/ServerVadChunkingStrategy' - type: 'null' title: Chunking Strategy description: Controls how the audio is cut into chunks. When set to `"auto"`, the server first normalizes loudness and then uses voice activity detection (VAD) to choose boundaries. `server_vad` object can be provided to tweak VAD detection parameters manually. If unset, the audio is transcribed as a single block. language: anyOf: - type: string - type: 'null' title: Language description: The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format will improve accuracy and latency. stream: type: boolean title: Stream description: Whether to stream the transcription result. When set to `true`, the transcription is sent as [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#event_stream_format) once generated. default: true temperature: anyOf: - type: number - type: 'null' title: Temperature description: 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. type: object required: - model - file title: ServerlessAudioTranscriptionStreamBody example: file: '@/path/to/file/audio.mp3' model: openai/whisper-large-v3 StreamedAudioTranscriptionData: properties: type: type: string enum: - transcript.text.delta - transcript.text.done title: Type description: The event type, which is `transcript.text.delta` or `transcript.text.done`. delta: anyOf: - type: string - type: 'null' title: Delta description: The incremental transcript text. text: anyOf: - type: string - type: 'null' title: Text description: The transcribed text. usage: anyOf: - $ref: '#/components/schemas/AudioTranscriptionUsage' - type: 'null' type: object required: - type title: StreamedAudioTranscriptionData securitySchemes: token: type: http description: 'When using Friendli Suite API for inference requests, you need to provide a **Friendli Token** for authentication and authorization purposes. For more detailed information, please refer [here](https://friendli.ai/docs/openapi/introduction#authentication).' scheme: bearer x-speakeasy-retries: strategy: backoff backoff: initialInterval: 500 maxInterval: 60000 maxElapsedTime: 3600000 exponent: 1.5 statusCodes: - 429 - 500 - 502 - 503 - 504 retryConnectionErrors: true