Solución de problemas del SDK de voz

En este artículo se proporciona información para ayudarle a resolver los problemas que pueden surgir al usar el SDK de Voz.

Error de autenticación

Es posible que observe uno de los distintos errores de autenticación, según el entorno de programación, la API o el SDK. A continuación, se muestran algunos errores de ejemplo:

  • ¿Ha establecido los valores de clave de recurso de voz y región?
  • AuthenticationFailure
  • HTTP 403 Prohibido o HTTP 401 No autorizado. Las solicitudes de conexión sin un encabezado Ocp-Apim-Subscription-Key o Authorization válido se rechazan con el estado 403 o 401.
  • ValueError: no se puede construir SpeechConfig con los argumentos especificados (o una variación de este mensaje). Este error se puede observar, por ejemplo, al ejecutar uno de los inicios rápidos del SDK de Voz para Python sin establecer variables de entorno. También se puede ver al establecer las variables de entorno en algo no válido, como su clave o región.
  • Excepción con un código de error: 0x5. Este error de acceso denegado se puede observar, por ejemplo, al ejecutar uno de los inicios rápidos del SDK de Voz para C# sin establecer variables de entorno.

Para obtener sugerencias para la solución de problemas de autenticación de línea base, consulte Validación de la clave de recurso y Validación de un token de autorización. Para más información sobre la confirmación de credenciales, consulte Obtención de las claves de un recurso.

Validación de la clave de recurso

Para comprobar si tiene una clave de recurso válida, ejecute uno de los comandos siguientes.

Nota

Reemplace YOUR_RESOURCE_KEY y YOUR_REGION por su propia clave de recurso y región asociada.

$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

Si escribió una clave de recurso válida, el comando devuelve un token de autorización; de lo contrario, se devuelve un error.

Validar un token de autorización

Si usa un token de autorización para la autenticación, puede aparecer un error por los siguientes motivos:

  • El token de autorización no es válido.
  • El token de autorización ha expirado.

Si usa un token de autorización para la autenticación, ejecute uno de los siguientes comandos para comprobar que el token de autorización sigue siendo válido. Los tokens son válidos durante 10 minutos.

Nota

Reemplace YOUR_AUDIO_FILE por la ruta de acceso al archivo de audio grabado previamente. Reemplace YOUR_ACCESS_TOKEN por el token de autorización devuelto en el paso anterior. Reemplace YOUR_REGION por la región correcta.

$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

Si escribió un token de autorización válido, el comando devuelve la transcripción del archivo de audio; de lo contrario, se devuelve un error.

InitialSilenceTimeout a través de RecognitionStatus

Normalmente, este problema se observa con el reconocimiento de una sola captura de una expresión única. Por ejemplo, el error se puede devolver en las siguientes circunstancias:

  • El audio comienza con un largo tramo de silencio. En ese caso, el servicio detiene el reconocimiento después de unos segundos y devuelve InitialSilenceTimeout.
  • El audio usa un formato de códec no admitido, que hace que los datos de audio se traten como silencio.

No pasa nada por que haya un periodo de silencio al principio del audio, pero solo cuando se usa el reconocimiento continuo.

SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND

Este error se puede devolver, por ejemplo, cuando se han instalado varias versiones de Python o si no usa una versión compatible de Python. Puede intentar usar otro intérprete de Python o desinstalar todas las versiones de Python y volver a instalar la versión más reciente de Python y el SDK de Voz.

HTTP 400 Solicitud incorrecta

El motivo suele darse cuando el cuerpo de la solicitud contiene datos de audio no válidos. Solo se admite el formato WAV. Compruebe también los encabezados de la solicitud para asegurarse de que está especificando valores correctos para Content-Type y Content-Length.

HTTP 408 Tiempo de espera de solicitud

El error suele producirse porque no se envía ningún dato de audio al servicio. Los problemas de red también pueden provocar este error.

Pasos siguientes