概念界定

以下概念引用自《实验语音学概要》(鲍怀翘,林茂灿):

  1. 声压

  2. 声压级(单位分贝)

原理

GetOutputData() 可以获得一段时间内的“瞬时声压”(虽然可能不是非常对但我们就当他是吧),根据声压公式计算声压后,就容易得到分贝值了。

另外本文的参数 refValue 用了0.0001,计算分贝四舍五入相当于计算声压是参考值的多少倍,所以 refValue 不同当然会导致结果不同。

代码

来源:https://answers.unity.com/questions/157940/getoutputdata-and-getspectrumdata-they-represent-t.html

public static class AudioPower
{public static float GetDb(this AudioSource audio, int length, float refValue){float[] samples = new float[length];audio.GetOutputData(samples, 0); // fill array with samplesvar dbLeft = CalulateDb(length, refValue, samples);audio.GetOutputData(samples, 1);var dbRight = CalulateDb(length, refValue, samples);return Mathf.Max(dbLeft, dbRight);}private static float CalulateDb(int length, float refValue, float[] samples){var sum = 0f;for (int i = 0; i < length; i++){sum += samples[i] * samples[i]; // sum squared samples}var rmsValue = Mathf.Sqrt(sum / length); // rms = square root of averagevar dbValue = 20 * Mathf.Log10(rmsValue / refValue); // calculate dBif (dbValue < -80) dbValue = -80; // clamp it to -160dB minreturn dbValue;}
}

其他一些可能有用的链接

  1. CSDN - liu_if_else - 用Unity3D内部频谱分析方法做音乐视觉特效的原理说明https://blog.csdn.net/liu_if_else/article/details/51233799

unity 获取 AudioSource 分贝值相关推荐

  1. android pcm 音量_Android中实时获取音量分贝值详解

    基础知识 度量声音强度,大家最熟悉的单位就是分贝(decibel,缩写为dB).这是一个无纲量的相对单位,计算公式如下: 分子是测量值的声压,分母是参考值的声压(20微帕,人类所能听到的最小声压).因 ...

  2. php读音量大小,Android_Android中实时获取音量分贝值详解,基础知识 度量声音强度,大 - phpStudy...

    Android中实时获取音量分贝值详解 基础知识 度量声音强度,大家最熟悉的单位就是分贝(decibel,缩写为dB).这是一个无纲量的相对单位,计算公式如下: 分子是测量值的声压,分母是参考值的声压 ...

  3. android 录音获取分贝变化,Android录音时获取分贝值的方法代码实例

    public class MediaRecorderDemo { private final String TAG = "MediaRecord"; private MediaRe ...

  4. AudioRecord获取分贝值

    最近项目需要AudioRecord进行录音保存PCM格式的文件 所以MedioRecorder就不能使用了,需求又要显示分贝值MedioRecorder直接有个api转换就行,但是AudioRecor ...

  5. [Unity][NodeCanvas] 通过 .value 获取 BBParameter 黑板值

    通过 .value 获取 BBParameter 黑板值,可以解决 BBParameter<T> 找不到方法的问题 例1 出错代码: using NodeCanvas.Framework; ...

  6. Unity获取安卓手机运营商信息

    Unity获取安卓手机运营商,电量,wifi信号强度,本地Toast,获取已安装apk,调用第三方应用,强制自动重启本应用 一个完整的游戏项目上线需要不断的完善优化,但是到了后期的开发不再仅仅是游戏了 ...

  7. Unity获取经纬度类封装

    Unity提供了Input.location,方便我们获取经纬度.这里对其封装了一下,方便直接使用. using System; using System.Collections; using Sys ...

  8. uni-app使用NativeJS获取录音分贝

    前言 因为uni-app和HTML5+ 没有获取录音分贝的功能,无奈只能记录一下使用NativeJS实现 代码实现 (1)初始化 data() {return {interval:null,Media ...

  9. 微信小程序获取text的值与获取input的输入的值

    有时候我们请求后台的时候需要使用到的 1 获取text 的值 首先需要把text 渲染 把值写在js里面 不如 wxml  写一个text <view class="container ...

  10. php xml获取标签属性,php获取xml属性值

    php获取xml属性值 $dom = new DOMDocument(); if (!$dom->load('attr.xml')) { echo "load books.xml fa ...

最新文章

  1. 用Python执行js文件代码并获取返回结果
  2. NetBeans IDE 8.0和Java 8的新功能
  3. Spring4 事务管理
  4. react native多语言_前端福音:为什么使用 React 和 SVG 开发图形 UI 是天作之合?
  5. 白话设计模式--行为型模式--Template Method模式(模板方法模式)
  6. php链接mysql数据库
  7. 服务器自动几点重启php,windows下apache及mysql定时自动重启服务器定时自动重启...
  8. dtw算法 c语言实现,DTW算法的python实现
  9. FPGA工程师笔试面试题(一)
  10. pikachu靶场 暴力破解 sql注入详解
  11. 概率统计:离散分布和连续分布
  12. 【转载】用Pwnage + Redsnow 制作完美越狱固件
  13. windows 通过快捷键来复制粘贴当前日期时间到剪贴板
  14. Struts 官方下载地址
  15. 二维Poisson方程五点差分格式及简单求解方法Python实现
  16. [ 2204听力 ] 一
  17. 无法打开位置服务器,电脑的定位功能无法打开怎么办?
  18. 第2阶段 第12讲 XMLHTTP协议
  19. 如何利用批处理启动cmd并进入指定目录
  20. Mysql 存储过程详解(procedure)

热门文章

  1. 京东运营体系组织架构曝光,自建物流秘密在这里
  2. 华为认证的话能拿到多少月薪啊?
  3. 『开发技巧』MacbookM1芯片深度学习环境配置最全教程:简明安装开发TensorFlow与PyTorch
  4. 京瓷打印机p5026cdn_京瓷p5026cdn驱动下载-京瓷p5026cdn打印机驱动v2.0.1421 官方版 - 极光下载站...
  5. 计算机软件产品类退税,软件产品增值税退税政策详解.doc
  6. access数据库代做_矿井三维模型(代做矿山模型)
  7. C++ OpenCV实现图像双三次插值算法
  8. python3实现灰度图的双三次插值算法缩放
  9. 正交设计助手的使用教程(设计测试用例的工具)
  10. 99%用户不知道 搜索引擎这样用才有效率