Azure / Azure/azure-sdk-for-python
Python Speech SDK fails with "USP error: timeout waiting for the first audio chunk" when using managed identity authentication
- Vorherrschende Sprache
- Python
- Sterne
- 5.6k
- Forks
- 3.4k
- Ø Merge
- 2 T.
- Gemergte PRs (30 T.)
- 217
Beschreibung
1. Environment Details:
- Python SDK version: 1.42.0
- Authentication: Using DefaultAzureCredential (falling back to Azure CLI)
- Token acquisition is successful (token starts with "eyJ0eXAiOi...")
- Identical configuration works successfully in C# but fails in Python
2. Tested Approaches:
- Using the raw token directly: speech_config.authorization_token = token
- Using a formatted token like C#: aad#{resourceId}#{token}
- Setting token via property ID: set_property(SpeechServiceAuthorization_Token, token)
- Setting auth type explicitly: set_property(SpeechServiceAuthorization_Type, "Bearer")
- Using a single synthesizer for all segments (like C# does)
- Using standard voices instead of HD voices
- Using simplified SSML without custom parameters
3. Error Details:
- Synthesis appears to start (synthesizer is created successfully)
- Service times out after ~80 seconds
- Error is always: "USP error: timeout waiting for the first audio chunk"
- No audio data is received despite successful token acquisition
4. Working C# Implementation:
` private static async Task GetAiServicesAuthorizationTokenAsync(CancellationToken cancellationToken)
{
const string scope = "https://cognitiveservices.azure.com/.default";
var tokenCredential = new DefaultAzureCredential();
var token = await tokenCredential.GetTokenAsync(new Azure.Core.TokenRequestContext([scope]), cancellationToken);
return token.Token;
}
// Later used with:
var authorizationToken = await GetAiServicesAuthorizationTokenAsync(cancellationToken);
var speechConfig = SpeechConfig.FromAuthorizationToken($"aad#{speechResourceId}#{authorizationToken}", speechRegion);`
We've ruled out most common issues (token formatting, SSML structure, voice selection), this appears to be either:
1. A limitation in the Python SDK's implementation for managed identity
2. A possible network/connectivity issue specific to the Python SDK
3. An undocumented requirement for additional configuration when using managed identity with Python
Here is a [repro script](https://gist.github.com/robotdad/e61662b34016d8b395187c37525f7771).
Beitragsleitfaden
Rechercherichtung
Beginne mit dem verlinkten Repro-Skript und reproduziere das Timeout mit Python SDK 1.42.0, DefaultAzureCredential und SpeechConfig.FromAuthorizationToken. Vergleiche den Python-Authentifizierungsablauf mit der funktionierenden C#-Konfiguration und den getesteten Tokenformaten. Als erledigt gilt die Identifizierung einer bestätigten Ursache im SDK oder in der Konfiguration sowie die Dokumentation oder Behebung des Fehlers bei der Sprachsynthese mit verwalteter Identität.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- azure, python
- Bereich
- api, authentication, cloud
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100