When using the Live API with InputAudioTranscription enabled, serverContent.InputTranscription.Finished is never true. It remains null for every InputTranscription message, including the final transcription at the end of a user's utterance. This makes it impossible to determine when a user's speech transcription is complete.
Environment:
• Package: Google.GenAI v1.5.0
• Runtime: .NET 8
• Model: gemini-2.5-flash-native-audio-latest
Steps to Reproduce:
using Google.GenAI;
using Google.GenAI.Types;
Client client = new(apiKey: "VALID_API_KEY");
LiveConnectConfig config = new() {
ResponseModalities = [Modality.Audio],
InputAudioTranscription = new AudioTranscriptionConfig(),
OutputAudioTranscription = new AudioTranscriptionConfig(),
SpeechConfig = new SpeechConfig {
VoiceConfig = new VoiceConfig {
PrebuiltVoiceConfig = new PrebuiltVoiceConfig {
VoiceName = "Zephyr"
}
}
}
};
AsyncSession session = await client.Live.ConnectAsync(
"gemini-2.5-flash-native-audio-latest", config);
// Consume SetupComplete
await session.ReceiveAsync();
// Send audio and receive messages...
while (true) {
LiveServerMessage message = await session.ReceiveAsync();
if (message?.ServerContent?.InputTranscription != null) {
var t = message.ServerContent.InputTranscription;
// t.Text contains transcription text ✓
// t.Finished is ALWAYS null — never true, even at end of utterance ✗
Console.WriteLine($"Text: '{t.Text}', Finished: {t.Finished}");
}
}
Impact:
Without a working Finished flag, there is no reliable way to know when a user's speech transcription is complete.
When using the Live API with InputAudioTranscription enabled, serverContent.InputTranscription.Finished is never true. It remains null for every InputTranscription message, including the final transcription at the end of a user's utterance. This makes it impossible to determine when a user's speech transcription is complete.
Environment:
• Package: Google.GenAI v1.5.0
• Runtime: .NET 8
• Model: gemini-2.5-flash-native-audio-latest
Steps to Reproduce:
using Google.GenAI;
using Google.GenAI.Types;
Client client = new(apiKey: "VALID_API_KEY");
LiveConnectConfig config = new() {
ResponseModalities = [Modality.Audio],
InputAudioTranscription = new AudioTranscriptionConfig(),
OutputAudioTranscription = new AudioTranscriptionConfig(),
SpeechConfig = new SpeechConfig {
VoiceConfig = new VoiceConfig {
PrebuiltVoiceConfig = new PrebuiltVoiceConfig {
VoiceName = "Zephyr"
}
}
}
};
AsyncSession session = await client.Live.ConnectAsync(
"gemini-2.5-flash-native-audio-latest", config);
// Consume SetupComplete
await session.ReceiveAsync();
// Send audio and receive messages...
while (true) {
LiveServerMessage message = await session.ReceiveAsync();
if (message?.ServerContent?.InputTranscription != null) {
var t = message.ServerContent.InputTranscription;
// t.Text contains transcription text ✓
// t.Finished is ALWAYS null — never true, even at end of utterance ✗
Console.WriteLine($"Text: '{t.Text}', Finished: {t.Finished}");
}
}
Impact:
Without a working Finished flag, there is no reliable way to know when a user's speech transcription is complete.