Поделиться через


Устранение неполадок с пакетом SDK службы "Речь"

В этой статье содержится информация, которая поможет решить неполадки, которые могут возникнуть при использовании пакета SDK для распознавания речи.

Проверка подлинности не пройдена

В зависимости от среды программирования, API или пакета SDK может возникнуть одна из нескольких ошибок проверки подлинности. Ниже приведены некоторые примеры ошибок:

  • Вы задали значения ключа ресурса речи и региона?
  • AuthenticationFailure
  • HTTP 403 Запрещено или HTTP 401 Несанкционированно. Запросы на соединение без допуска Ocp-Apim-Subscription-Key или Authorization заголовка отклоняются по состоянию 403 или 401.
  • ValueError: не удается создать SpeechConfig с заданными аргументами (или вариантом этого сообщения). Эта ошибка может наблюдаться, например при запуске одного из кратких руководств по пакету SDK службы "Речь" для Python без задания допустимых учетных данных.
  • Исключение с кодом ошибки: 0x5. Эта ошибка запрещенного доступа может наблюдаться, например при запуске одного из кратких руководств по пакету SDK службы "Речь" для C# без задания допустимых учетных данных.

Советы по устранению неполадок с базовой проверкой подлинности см. в статье "Проверка ключа ресурса" и проверка маркера авторизации.

Проверка ключа ресурса

Убедитесь, что у вас есть действительный ключ ресурса, выполнив одну из следующих команд.

Примечание.

Замените и YOUR_REGION на YOUR_RESOURCE_KEY свой собственный ключ ресурса и связанный регион.

$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

Если вы ввели действительный ключ ресурса, команда возвращает маркер авторизации, в противном случае возвращается ошибка.

Проверьте маркер проверки подлинности

Если вы используете маркер авторизации для проверки подлинности, может появиться ошибка проверки подлинности, так как:

  • токен авторизации недопустимый;
  • срок действия токена авторизации истек.

Если используется токен авторизации для аутентификации, выполните одну из приведенных ниже команд, чтобы убедиться, что токен авторизации по-прежнему допустимый. Токены допустимы в течение 10 минут.

Примечание.

Замените YOUR_AUDIO_FILE путем к предварительно записанному звуковому файлу. Замените YOUR_ACCESS_TOKEN маркером авторизации, возвращенным на предыдущем шаге. Замените YOUR_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

Если вы ввели действительный ключ авторизации, эта команда возвращает расшифровку аудиофайла. В противном случае возвращается ошибка.

InitialSilenceTimeout через RecognitionStatus

Эта проблема обычно наблюдается с одним выстрелом распознавания одного речевых фрагментов. Например, ошибка может быть возвращена в следующих обстоятельствах:

  • Звук начинается с длительной растянутой тишины. В этом случае служба прекращает распознавание через несколько секунд и вернет InitialSilenceTimeout.
  • Аудиозапись создана с помощью неподдерживаемого кодека, что приводит к тому, что аудиоданные воспринимаются как тишина.

Это нормально иметь молчание в начале звука, но только при использовании непрерывного распознавания.

SPXERR_AUDIO_SYS_LIBRARY_NOT_FOUND

Эта ошибка может быть возвращена, например при установке нескольких версий Python или если вы не используете поддерживаемую версию Python. Вы можете попробовать использовать другой интерпретатор Python или удалить все версии Python и повторно установить последнюю версию Python и пакета SDK службы "Речь".

HTTP 400 Недопустимый запрос

Обычно эта ошибка возникает, когда текст запроса содержит недопустимые аудиоданные. Поддерживается только формат WAV. Также проверьте заголовки запроса, чтобы убедиться, что вы указываете соответствующие значения для Content-Type и Content-Length.

HTTP 408 Время ожидания запроса истекло

Ошибка возникла, скорее всего, из-за отсутствия аудиоданных в службе. Проблемы с сетью также могут вызвать эту ошибку.

Следующие шаги