SSL не доступен в примере watson-developer-cloud. Микрофон-speech-to-text.py - PullRequest
1 голос
/ 27 марта 2019

Здравствуйте, я пытаюсь запустить следующий пример:

микрофон речь в текст

Я запускаю этот скрипт Python на устройстве Gentoo Linux с Python 2.7.6. Устройство подключено к Интернету через мобильную точку доступа с моего мобильного телефона.

К сожалению, он не работает и выдает следующий вывод:

Введите CTRL + C, чтобы завершить запись ...
Получена ошибка: SSL недоступен.
Соединение закрыто

Я запустил скрипт на своих окнах, и он работал нормально.

Установлены SSL-библиотеки:

ldconfig -p | grep ssl
vocon_ssl.so (libc6) => /opt/aldebaran/lib/vocon_ssl.so
libssl.so.1.0.0 (libc6) => /usr/lib/libssl.so.1.0.0
libssl.so (libc6) => /usr/lib/libssl.so
libgnutls-openssl.so.27 (libc6) => /usr/lib/libgnutls-openssl.so.27
libgnutls-openssl.so (libc6) => /usr/lib/libgnutls-openssl.so
libevent_openssl-2.0.so.5 (libc6) => /usr/lib/libevent_openssl-2.0.so.5

Если я запускаю другой пример ( speech_to_text_v1 ) Я получаю правильный результат от Ватсона, за которым следует:

Получена ошибка: SSL недоступен.

У кого-нибудь есть идея, в чем здесь проблема?

Спасибо

Ответы [ 2 ]

2 голосов
/ 28 марта 2019

Я могу избавиться от ошибки «SSL недоступен» с помощью

pip install backports.ssl-match-hostname

Я получил эту подсказку от здесь .

Также здесь упоминается, что websocket_client зависит от backports.ssl-match-hostname для Python 2.x

После установки пакета я получил:

Error received: _ssl.c:334: No root certificates specified for verification of o                                                                                                                                                             
ther-side certificates.

Это можно временно исправить, вызвав disable_SSL_verification() из SpeechToTextV1 перед обработкой.

Чтобы исправить это в долгосрочной перспективе, можно снизить версию библиотеки websocket-client до 0.47.0 link1 link2

0 голосов
/ 27 марта 2019

Если бы я рискнул предположить, возможно, ваше устройство Gentoo Linux не было настроено с соответствующими библиотеками TLS / SSL. В качестве теста выполните запрос списка моделей через cURL на вашем устройстве согласно документации API - https://cloud.ibm.com/apidocs/speech-to-text#list-models

curl -X GET -u "apikey:{apikey}" "https://stream.watsonplatform.net/speech-to-text/api/v1/models"

Это касается TLS, поэтому, если вы можете заставить это работать, вам может повезти с приложением python.

...