Problembehandlung für das Speech SDK

Dieser Artikel enthält Informationen zur Lösung von Problemen, die bei Verwendung des Spracherkennungs-SDK auftreten können.

Fehler bei der Authentifizierung.

Je nach Programmierumgebung, API oder SDK kann es zu verschiedenen Authentifizierungsfehlern kommen. Hier sehen Sie ein paar Beispiele für Fehler:

  • Haben Sie den Sprachressourcenschlüssel und die Regionswerte festgelegt?
  • AuthenticationFailure
  • „HTTP 403 Verboten“ oder „HTTP 401 Nicht autorisiert“ Verbindungsanforderungen ohne gültigen Ocp-Apim-Subscription-Key oder Authorization-Header werden mit dem Status 403 oder 401 abgelehnt.
  • ValueError: SpeechConfig kann nicht mit den angegebenen Argumenten erstellt werden (oder eine Variation dieser Meldung). Dieser Fehler kann beispielsweise auftreten, wenn Sie eine der Schnellstartanleitungen des Speech SDK für Python ausführen, ohne Umgebungsvariablen festzulegen. Möglicherweise wird er auch angezeigt, wenn Sie die Umgebungsvariablen auf einen ungültigen Wert festlegen, z. B. Ihren Schlüssel oder Ihre Region.
  • Ausnahme mit einem Fehlercode: 0x5. Der Fehler „Zugriff verweigert“ kann beispielsweise beobachtet werden, wenn Sie eine der Schnellstartanleitungen des Speech SDK für C# ausführen, ohne Umgebungsvariablen festzulegen.

Tipps zur Problembehandlung bei der Baselineauthentifizierung finden Sie unter Überprüfen Ihres Ressourcenschlüssels und Überprüfen eines Autorisierungstokens. Weitere Informationen zum Überprüfen von Nachweisen finden Sie unter Abrufen der Schlüssel für die Ressource.

Überprüfen Ihres Ressourcenschlüssels

Sie können überprüfen, ob Sie über einen gültigen Ressourcenschlüssel verfügen, indem Sie einen der unten aufgeführten Befehle ausführen.

Hinweis

Ersetzen Sie YOUR_RESOURCE_KEY und YOUR_REGION durch den eigenen Ressourcenschlüssel bzw. die zugehörige Region.

$FetchTokenHeader = @{
    'Content-type'='application/x-www-form-urlencoded'
    'Content-Length'= '0'
    'Ocp-Apim-Subscription-Key' = 'YOUR_RESOURCE_KEY'
}
$OAuthToken = Invoke-RestMethod -Method POST -Uri https://YOUR_REGION.api.cognitive.microsoft.com/sts/v1.0/issueToken -Headers $FetchTokenHeader
$OAuthToken

Wenn Sie einen gültigen Ressourcenschlüssel eingegeben haben, gibt der Befehl ein Autorisierungstoken zurück, andernfalls wird ein Fehler zurückgegeben.

Überprüfen eines Autorisierungstokens

Wenn Sie ein Authentifizierungstoken für die Authentifizierung verwenden, wird möglicherweise aus folgendem Grund ein Authentifizierungsfehler angezeigt:

  • Das Autorisierungstoken ist ungültig.
  • Das Autorisierungstoken ist abgelaufen.

Wenn Sie ein Autorisierungstoken für die Authentifizierung verwenden, führen Sie einen der folgenden Befehle aus, um sicherzustellen, dass das Autorisierungstoken noch gültig ist. Token sind 10 Minuten lang gültig.

Hinweis

Ersetzen Sie YOUR_AUDIO_FILE durch den Pfad Ihrer aufgezeichneten Audiodatei. Ersetzen Sie YOUR_ACCESS_TOKEN durch das im vorherigen Schritt zurückgegebene Autorisierungstoken. Ersetzen Sie YOUR_REGION durch die richtige Region.

$SpeechServiceURI =
'https://YOUR_REGION.stt.speech.microsoft.com/speech/recognition/interactive/cognitiveservices/v1?language=en-US'

# $OAuthToken is the authorization token returned by the token service.
$RecoRequestHeader = @{
    'Authorization' = 'Bearer '+ $OAuthToken
    'Transfer-Encoding' = 'chunked'
    'Content-type' = 'audio/wav; codec=audio/pcm; samplerate=16000'
}

# Read audio into byte array.
$audioBytes = [System.IO.File]::ReadAllBytes("YOUR_AUDIO_FILE")

$RecoResponse = Invoke-RestMethod -Method POST -Uri $SpeechServiceURI -Headers $RecoRequestHeader -Body $audioBytes

# Show the result.
$RecoResponse

Wenn Sie ein gültiges Authentifizierungstoken eingegeben haben, gibt der Befehl das Transkript Ihrer Audiodatei zurück, andernfalls wird ein Fehler zurückgegeben.

InitialSilenceTimeout über RecognitionStatus

Dieses Problem wird normalerweise bei der Einzelerkennung einer einzelnen Äußerung beobachtet. Der Fehler kann beispielsweise unter den folgenden Umständen zurückgegeben werden:

  • Zu Beginn einer Audiodatei ist es über einen längeren Zeitraum still. In diesem Fall beendet der Dienst die Erkennung nach einigen Sekunden und gibt InitialSilenceTimeout zurück.
  • Die Audiodatei verwendet ein nicht unterstütztes Codec-Format, wodurch die Audiodaten als Stille behandelt werden.

Es ist in Ordnung, wenn es zu Beginn einer Audiodatei längere Zeit still ist, aber nur, wenn Sie kontinuierliche Erkennung verwenden.

SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND

Dieser Fehler kann beispielsweise zurückgegeben werden, wenn mehrere Versionen von Python installiert sind oder wenn Sie keine unterstützte Version von Python verwenden. Sie können versuchen, einen anderen Python-Interpreter zu verwenden oder alle Python-Versionen zu deinstallieren und die neueste Version von Python und des Speech SDK erneut zu installieren.

HTTP 400 Ungültige Anforderung

Dieser Fehler tritt gewöhnlich auf, wenn der Anforderungstext ungültige Audiodaten enthält. Nur das WAV-Format wird unterstützt. Prüfen Sie auch die Anforderungsheader, um sicherzustellen, dass geeignete Werte für Content-Type und Content-Length angegeben sind.

HTTP 408 Anforderungstimeout

Der Fehler tritt wahrscheinlich auf, weil keine Audiodaten an den Dienst gesendet werden. Auch Netzwerkprobleme können diesen Fehler verursachen.

Nächste Schritte