我想要一定程度的实时语音到文本转换。我正在使用带有 interim_results=true
的网络套接字接口(interface)。但是,我仅收到第一个音频 block 的结果。我发送的第二个、第三个......音频 block 没有被转录。我确实知道我的接收器没有被阻止,因为我确实收到了不活动消息。
json {"error": "由于 30 秒后不活动, session 超时。"}
如果我需要提供更多上下文信息,请告诉我是否遗漏了某些内容。
仅供引用,这是我的 init json。
{
"action": "start",
"content-type":"audio/wav",
"interim_results": true,
"continuous": true,
"inactivity_timeout": 10
}
在我获得的第一个音频 block 的结果中,最终的 json 字段始终接收为 false
。
此外,我正在使用 golang 但这并不重要。
编辑:
考虑以下伪日志
- localhost-server 接收前 4 秒的二进制数据
#let say Binary 1
- 二进制 1 发送至 Watson
- {第一个 block 的interim_result_1}
- {第一个 block 的interim_result_2}
- localhost-server 接收最后 4 秒的二进制数据
#let say Binary 2
- 二进制 2 发送至 Watson
- 向 Watson 发送 {"action": "stop"}
- {第一个 block 的interim_result_3}
- 第一个 block 的最终结果
- 我没有收到第二 block 的任何转录
最佳答案
您收到超时消息是因为该服务等待您发送更多音频或发送表明音频提交结束的消息。您正在发送该消息吗?这非常简单:
通过发送 JSON 文本消息,并将操作键设置为值 stop:
{"action": "stop"}
通过发送空的二进制消息
https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/speech-to-text/websockets.shtml
如果这不能解决您的问题,请告诉我
关于ibm-cloud - 除了第一个音频 block 之外,不接收其他结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36242810/