gpt4 book ai didi

java - Mozilla MediaRecorder 的音频输出格式是什么以及如何在 Java(或 Scala)中解码 ogg 格式

转载 作者:行者123 更新时间:2023-11-30 08:15:53 25 4
gpt4 key购买 nike

我正在使用新的(非标准)Mozilla MediaRecorder API 录制用户语音。 Example logging of binary recording data

我猜格式是ogg。但除此之外,我怎样才能知道,更不用说配置音频数据是使用一个还是两个 channel ,帧速率是多少,等等?

相关问题,可能大部分信息都以 ogg 格式编码在二进制 blob 中,但是如何在服务器上用 Java 或 Scala 处理 ogg 文件格式? Java 中的标准声音 API 似乎不支持 Ogg,而且我还没有找到任何严肃的库可以在 Java 或 Scala 中执行此操作。

最佳答案

我认为帧速率不适用于音频 blob,但可以使用以下函数从音频 blob 中检索持续时间、channelCount 和sampleRate。如果您不需要持续时间,您可以取消回调,使用正常的返回函数检索其他两个详细信息。

function getAudioBlobDetails(blob, callback){
var audioURL = window.URL.createObjectURL(blob);
var audio = new Audio(audioURL);
audio.onloadedmetadata = function(){
var source = audioContext.createMediaElementSource(audio);
callback({
duration: audio.duration,
channelCount: source.channelCount,
sampleRate: source.context.sampleRate
});
};
}

Fiddle Demo

对于关于 java/scala 库的第二部分,我不太了解,但你可以做的一件事是,在服务器中使用 ffmpeg 来转换 ogg将文件转换为您更适合使用 java 库处理的格式。

编辑:

所以,如果您更喜欢 wav 格式,您可以使用著名的 mattdiamond/Recorderjs为了检索 wav blob,用法如下:

wavRecorder.exportWAV( uploadBlobToServer); // uploadBlobToServer is the function that accepts blob as parameter.

关于java - Mozilla MediaRecorder 的音频输出格式是什么以及如何在 Java(或 Scala)中解码 ogg 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29686596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com