Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 安卓技术相关 >

Android音频基础知识_V1.9 PDF 下载


分享到:
时间:2021-06-02 10:49来源:http://www.java1234.com 作者:转载  侵权举报
Android音频基础知识_V1.9 PDF 下载
失效链接处理
Android音频基础知识_V1.9 PDF 下载


本站整理下载:
提取码:wum7 
 
 
相关截图:
 
主要内容:

音频指人耳可以听到的声音频率在20Hz~20kHz之间的声波,高保真系统会处理10Hz~90KHz的音频,通常SOC主芯片和PA功放芯片的音频后处理post-processing会对此范围的音频做带通滤波。
 
常见基本参数包括:
采样频率sample rate
指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时占的资源也多,尤其是存储和计算方面的资源。通常声音回放的采样率取44.1KHz或者48KHz,某些HiFi高保真系统会上到96KHz,大部分Android系统的vendor hal native sample rate是48KHz。录音的采样率主要由app根据实际场景自己选择,比如录制music之类的一般选择44.1KHz或者48KHz,人声对话选择8KHz或者16KHz就足够。
采样位数sample bit-depth
采样值,用来衡量样本量化的动态范围。也可理解为采样分辨率,位数越大越精细,声音的细节表现力就越强,同时在计算过程中精度丢失越少。通常媒体文件、声音回放源数据使用16bit有符号整数或者32bit signed float表示,一些中间处理过程的计算可能会采用20bit signed int、24bit signed int、32bit signed float数,以防止计算过程中丢失精度。
通道数channel count
声音通道的数目,常见的为单声道Mono、立体声Stereo、3.1ch、3.1.2ch、5.1ch、7.1ch,带宽大的音频系统能处理到32个声道。
帧大小frame size
单个音频采样的数据大小,也是计算过程能够处理的最小单元。
frame_size = sample_bits * channel_count
16bits * 2ch = 32 bits
帧块frame block
一定数量的帧序列。对vendor hal层以下的libtinyalsa、card driver和hardware DMA操作来说,以帧块作为单次处理的数据单元,通常以能够回放10ms~20ms的时间所需要的数据作为帧块大小。
frame_block_size = 20ms/1000ms * 48K * frame_size = 960 * frames = 960 * 4B = 3840 B
对于一些要求low latency的场合来说,通常以5ms作为帧块大小,
frame_block_size = 5ms/1000ms * 48K * frame_size = 240 * frames = 240 * 4B = 960 B
从libtinyalsa往下传递数据参数时都应当是帧块大小的整数倍。
 
各场景音频输出数据流路径
Speaker输出,PCM format数据流

 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐