## Basic model info - Model name: google/google gemini-3.5-transcribe - Model description: Gemini 3.5 Transcribe — Google's dedicated speech-to-text model. High-accuracy transcription across 85+ languages with automatic language detection, speaker diarization, word-level timestamps, custom vocabulary biasing (up to 1,000 terms), and smart formatting mode. - Endpoint name: speech-to-text ## Model schema The model schema is defined in the OpenAPI schema: [OpenAPI Schema](https://oapi.sunra.ai/main/google/gemini-3.5-transcribe/latest.json) ### Model input schema The model input schema is: ```json { "description": "Input schema for Gemini 3.5 Transcribe audio file transcription.", "properties": { "audio_url": { "anyOf": [ { "format": "uri", "maxLength": 2083, "minLength": 1, "type": "string" }, { "type": "string" } ], "description": "Audio file URL to transcribe. The file must be at most 100 MB and at most 1 hour long; when diarization or word timestamps are enabled the limit is 30 minutes.", "title": "Audio Url", "x-sr-order": 301 }, "custom_vocabulary": { "anyOf": [ { "items": { "type": "string" }, "maxItems": 1000, "type": "array" }, { "type": "null" } ], "description": "Up to 1000 terms (names, jargon, acronyms) to bias the transcription towards.", "title": "Custom Vocabulary", "x-sr-order": 405 }, "diarize": { "default": false, "description": "Enable speaker diarization, labelling each word with the speaker who said it. Requires the 'verbatim' mode and implies word timestamps.", "title": "Diarize", "type": "boolean", "x-sr-order": 403 }, "language_codes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "BCP-47 language codes of the audio (e.g. ['en-US', 'es-ES']). Leave empty to automatically detect the language.", "title": "Language Codes", "x-sr-order": 401 }, "mode": { "default": "verbatim", "description": "Transcription mode. 'verbatim' transcribes exactly what was said; 'smart' removes disfluencies and applies formatting, but cannot be combined with speaker diarization or word timestamps.", "enum": [ "verbatim", "smart" ], "title": "Mode", "type": "string", "x-sr-order": 402 }, "word_timestamps": { "default": false, "description": "Include word-level start/end timestamps in the output. Requires the 'verbatim' mode.", "title": "Word Timestamps", "type": "boolean", "x-sr-order": 404 } }, "required": [ "audio_url" ], "title": "SpeechToTextInput", "type": "object" } ``` ### Model output schema The model output schema is: ```json { "description": "Output schema for Gemini 3.5 Transcribe results.", "properties": { "input_audio_duration": { "description": "The duration of the input audio in seconds, used for per-second billing", "title": "Input Audio Duration", "type": "integer" }, "text": { "description": "The full transcription text", "title": "Text", "type": "string" }, "words": { "anyOf": [ { "items": { "description": "Word-level timing information (aligned with the seed-asr-2.0 output).", "properties": { "end_time": { "description": "End time in milliseconds", "title": "End Time", "type": "integer" }, "speaker": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Speaker label for this word (e.g. 'spk:0'), present when diarization is enabled", "title": "Speaker" }, "start_time": { "description": "Start time in milliseconds", "title": "Start Time", "type": "integer" }, "text": { "description": "The word text", "title": "Text", "type": "string" } }, "required": [ "text", "start_time", "end_time" ], "title": "TranscriptionWord", "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Word-level results (present when word timestamps or diarization is enabled)", "title": "Words" } }, "required": [ "text", "input_audio_duration" ], "title": "GeminiTranscribeOutput", "type": "object" } ``` ## Example inputs and outputs Use the following example inputs and outputs to understand the model. ### Input example ```json { "audio_url": "", "custom_vocabulary": null, "diarize": false, "language_codes": null, "mode": "verbatim", "word_timestamps": false } ``` ### Output example ```json { } ``` ## Model code examples ### JavaScript ```javascript import { sunra } from "@sunra/client"; const result = await sunra.subscribe("google/gemini-3.5-transcribe/speech-to-text", { input: { audio_url: '', language_codes: null, mode: 'verbatim', diarize: false, word_timestamps: false, custom_vocabulary: null }, logs: true, onQueueUpdate: (update) => { console.log(`Status Update: ${update.status}, Request ID: ${update.request_id}`); }, }); console.log(result.data); console.log(result.requestId); ``` ### Python ```python import sunra_client result = sunra_client.subscribe( "google/gemini-3.5-transcribe/speech-to-text", arguments={ "audio_url": "", "language_codes": None, "mode": "verbatim", "diarize": False, "word_timestamps": False, "custom_vocabulary": None }, with_logs=True, on_enqueue=print, on_queue_update=print, ) print(result) ``` ### Java ```java import ai.sunra.client.*; import java.util.Map; import com.google.gson.JsonObject; var client = SunraClient.withEnvCredentials(); var response = client.subscribe( "google/gemini-3.5-transcribe/speech-to-text", SubscribeOptions.builder() .input(Map.of( "audio_url", "", "language_codes", null, "mode", "verbatim", "diarize", false, "word_timestamps", false, "custom_vocabulary", null)) .resultType(JsonObject.class) .onQueueUpdate(update -> System.out.printf( "\nStatus Update: %s, Request ID: %s%n", update.getStatus(), update.getRequestId() )) .logs(true) .build() ); System.out.println("Completed!"); System.out.println(response.getData()); ``` ### Kotlin ```kotlin import ai.sunra.client.kt.* import com.google.gson.JsonObject val client = createSunraClient() val response = client.subscribe( endpointId = "google/gemini-3.5-transcribe/speech-to-text", input = mapOf( "audio_url" to "", "language_codes" to null, "mode" to "verbatim", "diarize" to false, "word_timestamps" to false, "custom_vocabulary" to null), options = ai.sunra.client.kt.SubscribeOptions(logs = true), onUpdate = { update -> println("\nStatus Update: ${update.status}, Request ID: ${update.requestId}") } ) println("Completed!") println(response.data) ``` ### Curl ```bash curl --request POST \ --url https://api.sunra.ai/v1/queue/google/gemini-3.5-transcribe/speech-to-text \ --header "Authorization: Key $SUNRA_KEY" \ --header "Content-Type: application/json" \ --data '{"audio_url":"","language_codes":null,"mode":"verbatim","diarize":false,"word_timestamps":false,"custom_vocabulary":null}' ``` ## Model readme >