java - 在 Java 中将音频从 44.1kHz 下采样到 16kHz

标签 java audio applet javasound apache-commons-httpclient

我有一个应用程序可以记录来自用户麦克风的语音样本并将其上传到服务器,然后由服务器对其进行处理。看来我必须使用以下参数进行记录以避免 IllegalArgumentException:

Encoding encoding = AudioFormat.Encoding.PCM_SIGNED;
float sampleRate = 44100.0F;
int sampleSizeInBits = 16;
int channels = 2;
int frameSize = 4;
float frameRate = 44100.0F;
boolean bigEndian = false;

但我需要以 16khz 而非 44.1 的频率录制它(我假设是采样率和帧率)并且它必须是单声道(1 声道)。 PCM 签名也是强制性的,这样很好。 (服务器非常挑剔,我无法对其进行任何更改。)如何使用 Java 转换它?

我通过 HttpClient 将音频文件作为 Filebody 提交给 servlet,将其保存在服务器上,然后进行处理。

最佳答案

这里有一些很好的链接供您自己开始使用:

或者(为了快速使用)这里的免费库是您想要的:

关于java - 在 Java 中将音频从 44.1kHz 下采样到 16kHz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421874/

相关文章:

java - 如果 float 是整数(java),请将小数位数设置为 0?

javascript - 删除了辅助电缆上的 PWA javascript 事件

java - 替代小程序的替代技术?

android - 获取 Android 中可用铃声的列表

python - 如何在pygame中停止声音?

java - Mac OS X 中的 Applet 生命周期

java - 访问在不同浏览器窗口中运行的 Applet

java - 下面的任务会捕获异常吗?

java - Tomcat oomParachute : how to configure correctly

java.io.File.isFile() 在不同线程中返回不同的值