Java录制时检测静音

Java录制时检测静音,第1张

Java录制时检测静音

在Java中开始录制 *** 作时,如何检测静音?

计算一组声音帧的dB或RMS值,并确定将其视为“静音”的级别。

什么是PCM数据?

数据是在脉冲编码调制格式。

如何在Java中计算PCM数据?

我不明白这个问题。但是,猜测它与

speech-recognition
标记有关,我有一些坏消息。从理论上讲,这可以使用
Java Speech API
来完成。但是,显然没有可用于API的“语音到文本”实现(仅“文字到语音”)。

我必须为语音识别项目计算均方根值。但是我不知道如何用Java计算。

对于信号double范围在-1到1之间的单个通道,可以使用此方法。

public double volumeRMS(double[] raw) {    double sum = 0d;    if (raw.length==0) {        return sum;    } else {        for (int ii=0; ii<raw.length; ii++) { sum += raw[ii];        }    }    double average = sum/raw.length;    double sumMeanSquare = 0d;    for (int ii=0; ii<raw.length; ii++) {        sumMeanSquare += Math.pow(raw[ii]-average,2d);    }    double averageMeanSquare = sumMeanSquare/raw.length;    double rootMeanSquare = Math.sqrt(averageMeanSquare);    return rootMeanSquare;}

有一个字节缓冲区来保存行中的输入值,我应该使用该缓冲区做什么?

如果使用该

volumeRMS(double[])
方法,则将
byte
值转换
double
为-1到1范围内的值的数组。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5109410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存