Я пытаюсь определить использование «менеджера», «гарантии» и «замены» в аудиофайле, используя речь Ватсона к тексту 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 ...)