[英]Get Basic audio spectrum data in unity
我想可视化音频片段是否有声音。 麦克风和音频源正常工作,但我停留在其可视化部分。 我很难理解正式文件,因此需要解决方案。
我尝试了以下代码:
void Update () {
AnalyzeSound();
text1.text = "sound!\n"+ " rmsValue : " + rmsValue ;
}
void AnalyzeSound()
{
audio.GetOutputData(samples, 0);
//GetComponent rms
int i = 0;
float sum = 0;
for (; i < SAMPLE_SIZE; i++)
{
sum = samples[i] * samples[i];
}
rmsValue = Mathf.Sqrt(sum / SAMPLE_SIZE);
//get the dbValue
dbValue = 20 * Mathf.Log10(rmsValue / 0.1f);
}
我可以将rmsValue用作麦克风上的声音输入吗? 还是应该使用dbValue? 阈值应该是多少? 简而言之,我什么时候可以说麦克风有声音?
在所有情况下,都没有一个硬性和快速性的定义可以将噪声与静音区分开。 这实际上取决于背景噪声的音量。 例如,比较在消声室内记录的静音与在HVAC系统旁记录的静音。 最简单的尝试是尝试使用不同的dB阈值,低于该阈值则将信号视为噪声,而高于该阈值则将其视为信号。 然后向上或向下调整阈值以适合您的需求。 根据信号的性质(例如音乐与语音),您可以研究其他技术,例如语音活动检测( https://en.wikipedia.org/wiki/Voice_activity_detection )或卷积神经网络来分割语音和音乐
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.