Share via


Problemen met de Speech-SDK oplossen

Dit artikel bevat informatie over het oplossen van problemen die kunnen optreden wanneer u de Speech SDK gebruikt.

Verificatie is mislukt

Mogelijk ziet u een van de verschillende verificatiefouten, afhankelijk van de programmeeromgeving, API of SDK. Hier volgen enkele voorbeelden van fouten:

  • Hebt u de sleutel en regiowaarden voor de spraakresource ingesteld?
  • AuthenticationFailure
  • HTTP 403 Verboden of HTTP 401 Niet geautoriseerd. Verbinding maken ion-aanvragen zonder geldige Ocp-Apim-Subscription-Key of Authorization header worden geweigerd met de status 403 of 401.
  • ValueError: kan SpeechConfig niet samenstellen met de opgegeven argumenten (of een variatie van dit bericht). Deze fout kan bijvoorbeeld worden waargenomen wanneer u een van de Speech SDK voor Python-quickstarts uitvoert zonder omgevingsvariabelen in te stellen. Mogelijk ziet u deze ook wanneer u de omgevingsvariabelen instelt op iets ongeldigs, zoals uw sleutel of regio.
  • Uitzondering met een foutcode: 0x5. Deze fout met geweigerde toegang kan bijvoorbeeld worden waargenomen wanneer u een van de Speech SDK voor C#-quickstarts uitvoert zonder omgevingsvariabelen in te stellen.

Zie uw resourcesleutel valideren en een autorisatietoken valideren voor tips voor het oplossen van problemen met basislijnverificatie. Zie de sleutels voor uw resource ophalen voor meer informatie over het bevestigen van referenties.

Uw resourcesleutel valideren

U kunt controleren of u een geldige resourcesleutel hebt door een van de volgende opdrachten uit te voeren.

Notitie

Vervang en YOUR_REGION door YOUR_RESOURCE_KEY uw eigen resourcesleutel en de bijbehorende regio.

$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

Als u een geldige resourcesleutel hebt ingevoerd, retourneert de opdracht een autorisatietoken, anders wordt er een fout geretourneerd.

Een autorisatietoken valideren

Als u een autorisatietoken gebruikt voor verificatie, ziet u mogelijk een verificatiefout omdat:

  • Het autorisatietoken is ongeldig
  • Het autorisatietoken is verlopen

Als u een autorisatietoken gebruikt voor verificatie, voert u een van de volgende opdrachten uit om te controleren of het autorisatietoken nog steeds geldig is. Tokens zijn 10 minuten geldig.

Notitie

Vervang YOUR_AUDIO_FILE door het pad naar uw vooraf opgenomen audiobestand. Vervang YOUR_ACCESS_TOKEN door het autorisatietoken dat in de vorige stap is geretourneerd. Vervang door YOUR_REGION de juiste regio.

$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

Als u een geldig autorisatietoken hebt ingevoerd, retourneert de opdracht de transcriptie voor uw audiobestand, anders wordt er een fout geretourneerd.

InitialSilenceTimeout via RecognitionStatus

Dit probleem wordt meestal waargenomen met eenmalige herkenning van één uiting. De fout kan bijvoorbeeld worden geretourneerd onder de volgende omstandigheden:

  • De audio begint met een lange stretch van stilte. In dat geval stopt de service de herkenning na een paar seconden en wordt deze geretourneerd InitialSilenceTimeout.
  • De audio maakt gebruik van een niet-ondersteunde codec-indeling, waardoor de audiogegevens als stilte worden behandeld.

Het is oké om stilte te hebben aan het begin van audio, maar alleen wanneer u continue herkenning gebruikt.

SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND

Deze fout kan bijvoorbeeld worden geretourneerd wanneer meerdere versies van Python zijn geïnstalleerd of als u geen ondersteunde versie van Python gebruikt. U kunt proberen een andere Python-interpreter te gebruiken of alle Python-versies te verwijderen en de nieuwste versie van Python en de Speech SDK opnieuw te installeren.

HTTP 400 Ongeldige aanvraag

Deze fout treedt meestal op wanneer de aanvraagtekst ongeldige audiogegevens bevat. Alleen de WAV-indeling wordt ondersteund. Controleer ook de headers van de aanvraag om ervoor te zorgen dat u de juiste waarden voor Content-Type en Content-Length opgeeft.

Time-out voor HTTP 408-aanvraag

De fout treedt waarschijnlijk op omdat er geen audiogegevens naar de service worden verzonden. Netwerkproblemen kunnen ook deze fout veroorzaken.

Volgende stappen