Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce informazioni che consentono di risolvere i problemi riscontrati quando si usa Speech SDK.
Autenticazione non riuscita
Potrebbero essere segnalati vari errori di autenticazione, a seconda dell'ambiente di programmazione, dell'API o dell'SDK. Di seguito sono riportati alcuni errori di esempio:
- Sono stati impostati la chiave e i valori dell'area per la risorsa Voce?
- AuthenticationFailure
- HTTP 403 - accesso negato o HTTP 401 - non autorizzato. Le richieste di connessione senza un'intestazione
Ocp-Apim-Subscription-Key
oAuthorization
valida vengono rifiutate con lo stato 403 o 401. - ValueError: impossibile costruire SpeechConfig con gli argomenti specificati (o una variante di questo messaggio). Questo errore può essere osservato, ad esempio, quando si esegue uno degli avvii rapidi di Speech SDK per Python senza impostare credenziali valide.
- Eccezione con un codice errore: 0x5. Questo errore di accesso negato può essere osservato, ad esempio, quando si esegue uno degli avvii rapidi di Speech SDK per C# senza impostare credenziali valide.
Per suggerimenti per la risoluzione dei problemi relativi all'autenticazione di base, vedere convalidare la chiave della risorsa e convalidare un token di autorizzazione.
Convalidare la chiave della risorsa
È possibile verificare di avere una chiave della risorsa valida eseguendo uno dei comandi riportati di seguito.
Nota
Sostituire YOUR_RESOURCE_KEY
e YOUR_REGION
con la propria chiave della risorsa e l'area associata.
$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
Se si immette una chiave di risorsa valida, il comando restituisce un token di autorizzazione, in caso contrario viene restituito un errore.
Convalidare un token di autorizzazione
Se si usa un token di autorizzazione per l'autenticazione, potrebbe essere visualizzato un errore di autenticazione perché:
- Il token di autorizzazione non è valido
- Il token di autorizzazione è scaduto
Se si usa un token di autorizzazione per l'autenticazione, eseguire uno dei comandi seguenti per verificare che il token di autorizzazione sia ancora valido. I token sono validi per 10 minuti.
Nota
Sostituire YOUR_AUDIO_FILE
con il percorso del file audio preregistrato. Sostituire YOUR_ACCESS_TOKEN
con il token di autorizzazione restituito al passaggio precedente. Sostituire YOUR_REGION
con l'area corretta.
$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
Se si immette un token di autorizzazione valido, il comando restituisce la trascrizione del file audio, in caso contrario viene restituito un errore.
InitialSilenceTimeout tramite RecognitionStatus
Questo problema viene in genere osservato con il riconoscimento singolo di una singola espressione. Ad esempio, l'errore può essere restituito nelle circostanze seguenti:
- L'audio inizia con un lungo tratto di silenzio. In questo caso il servizio interrompe il riconoscimento dopo alcuni secondi e restituisce
InitialSilenceTimeout
. - L'audio usa un formato codec non supportato e quindi i dati audio vengono trattati come silenzio.
È possibile avere il silenzio all'inizio dell'audio, ma solo quando si usa il riconoscimento continuo.
SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND
Questo errore può essere restituito, ad esempio, quando ci sono più versioni di Python installate o se non si usa una versione supportata di Python. È possibile provare a usare un interprete Python diverso o disinstallare tutte le versioni di Python e installare la versione più recente di Python e Speech SDK.
HTTP 400 - Richiesta non valida
Questo errore si verifica in genere quando il corpo della richiesta contiene dati audio non validi. È supportato solo il formato WAV. Controllare anche le intestazioni della richiesta per verificare che siano specificati valori appropriati per Content-Type
e Content-Length
.
HTTP 408 - Timeout richiesta
L'errore molto probabilmente è dovuto al fatto che i dati audio non vengono inviati al servizio. Anche i problemi di rete potrebbero causare questo errore.