ibm-watson - 将音频文件传递到 watson websocket 时出错:[SSL: BAD_LENGTH] 长度错误 (_ssl.c:2341)
问题描述
我正在尝试使用 watson 语音转文本 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 ...)
解决方案
当然,我在发布后立即找到了答案......文件路径不正确,应该是:
with open(join(dirname(__file__), 'AudioRecordings/ComputerSupportCall.mp3')
'rb') as audio_file:
推荐阅读
- android - 如何在 ImageView 和 TextView 之间椭圆化 TextView?
- ios - 泛型类中的访问函数协议
- html - 媒体查询:如何使用 css 媒体查询定位 1024 以下的所有横向设备
- c# - System.ArgumentOutOfRangeException: '指定的参数超出了有效值的范围。参数名称:asp.net中的index'
- excel - 如何获取每个下载的 Workbook 的数据?
- react-native - this.text = 'a' 与 this.setState({text:a'}) 有什么不同
- docker - Kubernetes YAML 为同一个 pod 中的多个图像部署?
- java - 我有错误检查手册对应的mysql服务器版本
- powershell - PowerShell 作业完成但不创建输出
- firebase - 创建一个自定义 Firebase 数据消息处理程序 vue,在推送通知上回复原始应用程序