Hello Google Gemini API team,
I would like to request a transcription feature that would make Gemini Transcribe much more practical for subtitle generation.
Currently, the API supports word-level timestamps through timestamp_granularities: ["word"]. However, according to the documentation, enabling word-level timestamps may reduce overall transcription accuracy.
This creates a difficult trade-off:
-
Without timestamps, the transcription quality is excellent.
-
With word-level timestamps enabled, transcription quality can decrease.
-
Word-level timestamps are also not ideal for subtitles because they require additional processing to group individual words into natural phrases and generate an SRT/VTT file.
What I would like to request
Could you consider supporting phrase-level or sentence-level timestamps directly in Gemini Transcribe?
For example:
00:00:00.100 → 00:00:03.200
Hello everyone, welcome to the meeting.
00:00:03.250 → 00:00:06.700
Today we're going to talk about the new project.
00:00:06.750 → 00:00:09.400
First, let's look at the current situation.
Ideally, the API could return something like:
{
"segments": [
{
"text": "Hello everyone, welcome to the meeting.",
"start": "0.100s",
"end": "3.200s"
},
{
"text": "Today we're going to talk about the new project.",
"start": "3.250s",
"end": "6.700s"
}
]
}
Even better would be native subtitle output, for example:
-
SRT -
WebVTT
Why phrase-level timestamps would be better
For subtitle generation, word-level timestamps are unnecessarily granular. What users generally need is a set of naturally segmented subtitle phrases.
Forcing users to reconstruct phrases from individual word timestamps introduces several problems:
-
It requires additional client-side processing.
-
The client has to decide where one subtitle should end and another should begin.
-
Poor segmentation can produce unnatural subtitles.
-
Word timestamps may already come with an accuracy trade-off.
-
Users who want the highest transcription quality currently have to choose between accurate transcription and convenient timing information.
A phrase-level timestamping system could potentially preserve the model’s normal high transcription quality while still providing useful timing information.
An ideal API
It would be great if the transcription configuration supported something along the lines of:
{
"transcription_config": {
"mode": {
"type": "verbatim"
},
"timestamp_granularities": ["segment"]
}
}
Where segment represents a natural subtitle-sized phrase/sentence rather than individual words.
An additional option such as:
{
"subtitle_config": {
"format": "srt"
}
}
would make the API even more useful for video/audio workflows.
Additional request
If possible, it would also be useful to allow users to control subtitle segmentation parameters, such as:
-
Maximum subtitle duration
-
Maximum characters per line
-
Maximum lines per subtitle
-
Minimum subtitle duration
-
Whether segmentation should follow sentences, pauses, or semantic boundaries
-
Speaker labels when diarization is enabled
For example:
{
"subtitle_config": {
"format": "srt",
"max_duration_seconds": 6,
"max_lines": 2,
"max_characters_per_line": 42
}
}
This would allow Gemini to perform the segmentation using its understanding of the audio and language rather than requiring developers to reconstruct subtitle segments from word-level timestamps.
Overall, native phrase/sentence-level timestamps would be significantly more useful for real-world transcription and subtitle workflows than word-level timestamps, especially when transcription accuracy is a priority.
Thank you for considering this feature request.