十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
最近项目中需要实现手机采集声音频率实现设备律动的效果,整理了下Android与声音相关的知识。
成都创新互联成立于2013年,我们提供高端网站建设、成都网站制作、成都网站设计、网站定制、网络营销推广、小程序制作、微信公众号开发、seo优化排名服务,提供专业营销思路、内容策划、视觉设计、程序开发来完成项目落地,为成都白乌鱼企业提供源源不断的流量和订单咨询。
根据声音振幅、频率获取颜色值,通过蓝牙mesh发送指令给灯改变其颜色值。
Android声音采集相关Api
快速傅里叶变换公式
Mesh网发送rgb值相关指令
人主观感觉声音的大小(音量),振幅与人离声源的距离决定,振幅越大,离声源的距离越小,响度越大。
LP= 20×lgP/P0
LP:声压级(db)
P:声压(Pa)
P0:基准声压:2*10-5Pa,该值是对800HZ声音人耳刚能听到的最低声压。
声音的高低,由频率决定,频率越高,音调越高。
频率是每秒经过一给定点的声波数量,单位赫兹(Hz)
人耳能听到20~20kHz的声音。
音品,波形决定声音的音色。
MediaRecorder:基于文件录音,已集成录音、编码、压缩
把模拟信号数字化的过程
采样频率越高,红色间隔越密集,记录音频所用数据量越大,音频质量越高。
采样定理(奈奎斯特理论):当采样频率大于信号中最高频率的2倍时,采样后的数字信号完整地保留原始信号中的信息。人耳能听到20~20kHz的声音,为了保证声音不失真,采样频率应在40kHz以上。
目前44100Hz是唯一可以保证兼容所有Android手机的采样率。
指将模拟信号分成几个等级,量化精度越高,声音质量越好,单位Bit。
CD标准量化精度16Bit,DVD标准量化精度24Bit。
16Bit可以保证兼容所有Android手机。
音频采集、播放可以叠加,可以同时从多个音频源采集声音,例如:单声道/双声道。
即采样时间,例如20ms一帧代表20ms为单位的数据量为一帧音频。
一帧音频帧大小 = 采样率 x 位宽 x 采样时间 x 通道数
例:采样率8000,位宽8,通道2,采样间隔20ms
(8000 * 8/8 *2)/ (1000/20 ) = 320Byte //1字节 = 8 bits
对audioData进行快速傅里叶变化,时域-频域的变化,可以将信号的频谱提取出来。
傅立叶变换就是多个正余弦波叠加可以用来近似任何一个原始的周期函数,它实质是是频域函数和时域函数的转换。
Visualizer:检索当前正在播放的音频,对其进行编码
以下基于AudioRecord采集的音频数据后进行快速傅里叶变换得到频率值
若使用的是vivo手机,可参考设置输入法按键振动方法:
百度输入法定制版:进入设置--系统管理--输入法--百度输入法定制版--键盘界面设置--按键反馈,根据您的需要调整振动大小即可;
搜狗输入法定制版/vivo输入版:进入设置--系统管理/更多设置--输入法--搜狗输入法定制版/vivo输入法--键盘设置--按键反馈,根据您的需要调整振动大小即可。
如果您使用的是华为手机,可以按照以下方法操作:
进入设置 声音和振动,拖动音量条,即可分别调整媒体、铃声、闹钟、通话和智慧语音的音量大小。