以下是工作代码的jsfiddle:https://jsfiddle.net/Noitidart/z5dqpe8r/
如果我在Firefox中加载小提琴它完美无缺。它记录音频,将其发送给watson并获得结果。但是在Chrome中,当它将其发送给watson时会出错。如何让它在Google Chrome中运行?
我基于此处文档中的代码 - https://www.ibm.com/watson/developercloud/doc/speech-to-text/input.html#formats - 在audio/webm
部分下它有:
对于演示如何从Chrome浏览器中的麦克风捕获音频并将其编码为WebM数据流的JavaScript代码,请参阅jsbin.com/hedujihuqo/edit?js,console。请注意,代码不会将捕获的音频提交给服务。
jsbin链接在这里 - https://jsbin.com/hedujihuqo/edit?js,console
它在Firefox中完美运行。但是它无法在Chrome中运行。在Firefox中,我实际上需要使用audio/ogg
。文档中的jsbin说要将auio/webm
用于Google Chrome。
这是我的上传代码:
let data = new FormData();
data.append('file', blob, 'recording.' + file_ext);
let results_res = await fetch('https://stream.watsonplatform.net/speech-to-text/api/v1/recognize', {
method: 'POST',
headers: {
'Content-Type': 'audio/' + file_ext,
'X-Watson-Authorization-Token': token
},
body: data
});
有关为什么它无法在Chrome中运行的任何想法?