IBM Watson Speech-to-Text Python, объект «DetailResponse» не имеет атрибута «getResult» - PullRequest
0 голосов
/ 13 сентября 2018

Я разрабатываю проект во Flask с Python, который использует функцию речи в текст IBM Watson. Все, что я сейчас пытаюсь сделать, это загрузить файл FLAC (0001.flac), интерпретировать файл через Watson и распечатать результаты на моей консоли. На данный момент у меня написан следующий код (я заменил свое имя пользователя и пароль для примера):

from werkzeug import secure_filename
import pprint, json, os
from watson_developer_cloud import SpeechToTextV1

. . .

speech_to_text = SpeechToTextV1(
username='My username is here',
password='My password is here')

with open(os.path.join(os.path.dirname(__file__), '0001.flac'), 'rb') as audio_file:
    speech_to_text.set_detailed_response(True)
    outthis = speech_to_text.recognize(
          audio_file, content_type='audio/flac', timestamps=True)
    pprint.pprint(json.dumps(outthis.getResult(), indent=2))

А вот мой вывод:

[2018-09-13 11:46:36,553] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\_compat.py", line 33, in reraise
    raise value
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\env\lib\site-packages\flask\app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\ehill\source\repos\FlaskWebProject1\FlaskWebProject1\FlaskWebProject1\views.py", line 31, in home
    pprint.pprint(json.dumps(outthis.getResult(), indent=2))
AttributeError: 'DetailedResponse' object has no attribute 'getResult'

Согласно документации Watson (https://www.ibm.com/watson/developercloud/speech-to-text/api/v1/python.html?python#introduction) я должен иметь возможность получать информацию через getResult об объекте DetailResponse. Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Чтобы придерживаться соглашений PEP8 для имен функций и переменных , метод getResult был переименован в get_result в версии 2.0.

0 голосов
/ 13 сентября 2018

Я вижу то же самое в нашей среде CI, которая запускает "pip install" из чистой среды. Похоже, что изменение изменилось с watson_developer_cloud v2.0.0 (https://pypi.org/project/watson-developer-cloud/2.0.0/#changes-for-v2.0).

Я обращался к этому моменту, заставляя версию 1.7.1, пока не смогу глубже взглянуть на изменения кода. Похоже, что это может быть небольшое изменение (от response.get до response.get_result, но я не могу быть уверен в этом).

К вашему сведению - вот список критических изменений в версии 2.0: https://github.com/watson-developer-cloud/python-sdk/wiki/Migration

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...