Felsöka Speech SDK
Den här artikeln innehåller information som hjälper dig att lösa problem som kan uppstå när du använder Speech SDK.
Autentiseringen misslyckades
Du kan se ett av flera autentiseringsfel, beroende på programmeringsmiljön, API:et eller SDK:n. Här följer några exempelfel:
- Har du angett talresursnyckeln och regionvärdena?
- AuthenticationFailure
- HTTP 403 Förbjudet eller HTTP 401 Obehörigt. Anslut ionsbegäranden utan ett giltigt
Ocp-Apim-Subscription-Key
ellerAuthorization
sidhuvud avvisas med statusen 403 eller 401. - ValueError: kan inte konstruera SpeechConfig med de angivna argumenten (eller en variant av det här meddelandet). Det här felet kan till exempel observeras när du kör en av snabbstarterna för Speech SDK för Python utan att ange miljövariabler. Du kan också se det när du anger miljövariablerna till något ogiltigt, till exempel din nyckel eller region.
- Undantag med en felkod: 0x5. Det här felet om nekad åtkomst kan observeras, till exempel när du kör en av snabbstarterna speech SDK för C# utan att ange miljövariabler.
Felsökningstips för baslinjeautentisering finns i verifiera resursnyckeln och verifiera en auktoriseringstoken. Mer information om hur du bekräftar autentiseringsuppgifter finns i hämta nycklarna för din resurs.
Verifiera resursnyckeln
Du kan kontrollera att du har en giltig resursnyckel genom att köra något av följande kommandon.
Kommentar
Ersätt YOUR_RESOURCE_KEY
och YOUR_REGION
med din egen resursnyckel och tillhörande 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
Om du har angett en giltig resursnyckel returnerar kommandot en auktoriseringstoken, annars returneras ett fel.
Verifiera en auktoriseringstoken
Om du använder en auktoriseringstoken för autentisering kan det uppstå ett autentiseringsfel eftersom:
- Auktoriseringstoken är ogiltig
- Auktoriseringstoken har upphört att gälla
Om du använder en auktoriseringstoken för autentisering kör du något av följande kommandon för att kontrollera att auktoriseringstoken fortfarande är giltig. Token är giltiga i 10 minuter.
Kommentar
Ersätt YOUR_AUDIO_FILE
med sökvägen till din förinspelade ljudfil. Ersätt YOUR_ACCESS_TOKEN
med auktoriseringstoken som returnerades i föregående steg. Ersätt YOUR_REGION
med rätt 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
Om du har angett en giltig auktoriseringstoken returnerar kommandot transkriptionen för ljudfilen, annars returneras ett fel.
InitialSilenceTimeout via RecognitionStatus
Det här problemet brukar observeras med enstaka igenkänning av ett enda yttrande. Felet kan till exempel returneras under följande omständigheter:
- Ljudet börjar med en lång tystnadssträcka. I så fall stoppar tjänsten igenkänningen efter några sekunder och returnerar
InitialSilenceTimeout
. - Ljudet använder ett codec-format som inte stöds, vilket gör att ljuddata behandlas som tystnad.
Det är OK att ha tystnad i början av ljudet, men bara när du använder kontinuerlig igenkänning.
SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND
Det här felet kan returneras, till exempel när flera versioner av Python är installerade eller om du inte använder en version av Python som stöds. Du kan prova att använda en annan Python-tolk eller avinstallera alla Python-versioner och installera om den senaste versionen av Python och Speech SDK.
HTTP 400 Felaktig begäran
Det här felet uppstår vanligtvis när begärandetexten innehåller ogiltiga ljuddata. Endast WAV-formatet stöds. Kontrollera också begärandehuvuden för att se till att du anger lämpliga värden för Content-Type
och Content-Length
.
Tidsgräns för HTTP 408-begäran
Felet beror troligen på att inga ljuddata skickas till tjänsten. Nätverksproblem kan också orsaka det här felet.