繁体   English   中英

统一获取基本音频频谱数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM