Ошибка при передаче аудиофайла в веб-сокет watson: [SSL: BAD_LENGTH] неверная длина (_ssl.c: 2341) - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь определить использование «менеджера», «гарантии» и «замены» в аудиофайле, используя речь Ватсона к тексту API.Ошибка, которую я получаю, зашифрована:

Получена ошибка: [SSL: BAD_LENGTH] неверная длина (_ssl.c: 2341)

from __future__ import print_function
import json
from os.path import join, dirname
from ibm_watson import SpeechToTextV1
from ibm_watson.websocket import RecognizeCallback, AudioSource

speech_to_text = SpeechToTextV1(
    iam_apikey="__nunya__",
    url="__nunya__"
)

class MyRecognizeCallback(RecognizeCallback):
    def __init__(self):
        RecognizeCallback.__init__(self)

    def on_data(self, data):
        print(json.dumps(data, indent=2))

    def on_error(self, error):
        print('Error received: {}'.format(error))

    def on_inactivity_timeout(self, error):
        print('Inactivity timeout: {}'.format(error))

myRecognizeCallback = MyRecognizeCallback()

with open(join(dirname(__file__), './.', 'AudioRecordings/ComputerSupportCall.mp3'),
              'rb') as audio_file:
    audio_source = AudioSource(audio_file)
    speech_to_text.recognize_using_websocket(
        audio=audio_source,
        content_type='audio/mp3',
        recognize_callback=myRecognizeCallback,
        model='en-US_BroadbandModel',
        keywords=['manager', 'warranty', 'replace'],
        keywords_threshold=0.5,
        max_alternatives=3)

Я пытаюсь получить ответответ в следующем формате:

      "keywords_result": {
        "manager": [
          {
            "normalized_text": "manager",
            "start_time": 1.52,
            "end_time": 2.15,
            "confidence": 0.978
          }
        ], (etc ...)

1 Ответ

1 голос
/ 27 апреля 2019

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

with open(join(dirname(__file__), 'AudioRecordings/ComputerSupportCall.mp3')
              'rb') as audio_file:
...