我正在使用 Chrome 在 Chrome 中录制短音频文件(几秒钟)mediaDevices.getUserMedia()
,将文件保存到 Firebase Storage,然后尝试将文件发送到 IBM Watson Speech-to-Text。我收到此错误消息:
unable to transcode data stream audio/webm -> audio/x-float-array
在浏览器中,我设置了麦克风:
navigator.mediaDevices.getUserMedia({ audio: true, video: false })
.then(stream => {
var options = {
audioBitsPerSecond : 128000,
mimeType : 'audio/webm'
};
const mediaRecorder = new MediaRecorder(stream, options);
mediaRecorder.start();
...
根据this answer Chrome只支持两种媒体类型
audio/webm
audio/webm;codecs=opus
我都试过了。
这是我发送给 IBM Watson 的内容:
curl -X POST -u "apikey:my-api-key" \
--header "Content-Type: audio/webm" \
--data-binary "https://firebasestorage.googleapis.com/v0/b/my-app.appspot.com/my-file" \
--url "https://api.us-south.speech-to-text.watson.cloud.ibm.com/instances/01010101/v1/recognize"
支持的 MIME 类型列表包括webm
和webm;codecs=opus
。
我尝试录制并发送ogg
格式文件,并收到相同的错误消息:
curl -X POST -u "apikey:my-api-key" \
--header "Content-Type: audio/ogg" \
--data-binary @/Users/TDK/LanguageTwo/public/1.ogg \
--url "https://api.us-south.speech-to-text.watson.cloud.ibm.com/instances/01010101/v1/recognize"
我尝试了 IBM 的示例音频文件,它运行良好:
"transcript": "several tornadoes touched down as a line of severe thunderstorms swept through Colorado on Sunday "
我从 Google Cloud Speech-to-Text收到了类似的错误消息。