IBM Watson语音转文本无法对数据流音频/WebM音频/x浮点数组媒体MIME类型进行代码转换 [英] IBM Watson Speech-to-Text "unable to transcode data stream audio/webm -> audio/x-float-array" media MIME types
本文介绍了IBM Watson语音转文本无法对数据流音频/WebM音频/x浮点数组媒体MIME类型进行代码转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
mediaDevices.getUserMedia()
在Chrome中录制短音频文件(几秒钟),将文件保存到Firebase存储,然后尝试将文件发送到IBM Watson语音到文本。我收到以下错误消息:
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 answerChrome仅支持两种媒体类型
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"
supported MIME types的列表包括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语音到文本的similar error message。
推荐答案
创建一个名为watsonstt.sh
的bash脚本(我建议保存在~/bin/
中),粘贴下面的内容,将apikey
、url
和savepath
变量内容替换为您自己的内容,并按照注释的建议调用脚本,包括单个参数的引号(以处理空格)。
撰写本文时,在IBM Watson云Web界面的"管理"选项卡中提供了API凭据,您需要使用信用卡/借记卡详细信息进行注册。
#!/bin/bash
# call this script with one argument for posix file path parameter in quotes e.g.:
# watsonstt.sh "/user/name/file.mp3"
# 500 mins per month for free
# https://www.ibm.com/watson/developercloud/speech-to-text/api/v1/curl.html?curl#get-token
apikey=XXXXXXXXXXXX
url=YYYYYYYYYY
savepath=~/Desktop/${1##*/}.txt
curl -X POST -u "apikey:$apikey" --header "Content-Type: audio/${1##*.}" --data-binary @"$1" "$url/v1/recognize?timestamps=true&max_alternatives=3" -o "${savepath}"
这篇关于IBM Watson语音转文本无法对数据流音频/WebM音频/x浮点数组媒体MIME类型进行代码转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文