我正在使用MediaRecorder从浏览器收集音频,并且所生成的音频文件的编解码器与IBM Watson Speech to Text不兼容。编解码器是“ matroska”,我需要将其作为原始PCM编解码器。
如何设置从浏览器收集的音频文件的编解码器?这是我正在使用的一些代码:
var options = {
audioBitsPerSecond : 32000
}
var mediaRecorder = new MediaRecorder(audioStream, options);
mediaRecorder.start();
var data = [];
mediaRecorder.ondataavailable = e => console.log(mediaRecorder.audioBitsPerSecond);
mediaRecorder.ondataavailable = e => e.data.size && data.push(e.data);
mediaRecorder.onstop = () => process(data);
function process(data) {
var int16Array = [];
const blob = new Blob(data, {
type: 'audio/wav'
})
答案 0 :(得分:0)
您可以通过在新MediaRecorder()的mimeType
参数的第二个变量中设置编解码器来进行设置。感谢Jaromanda X指出我在查看新Blob类型时的错误。像这样做...
var options = {
audioBitsPerSecond : 32000,
mimeType: 'audio/webm;codecs=pcm',
}
var mediaRecorder = new MediaRecorder(audioStream,options);
在其上签出MDN文档:MDN Network: MediaRecorder
您可以查看isTypeSupported
,MediaRecorder.isTypeSupported()是否支持模仿类型。
那么,我到底支持什么编解码器?我已经广泛地寻找了这个答案,但是,我发现的最好的是另一篇stackoverflow帖子:Where is a comprehensive list of supported media types when recording with the Media * API?