音频开发中常用到的概念

作者&投稿:歧程 (若有异议请与网页底部的电邮联系)

在音频开发中,下面的这几个概念经常会遇到。

(1) 采样率(samplerate)

采样率,注意,目前44100Hz是唯一可以保证兼容所有Android手机的采样率。

采样就是把模拟信号数字化的过程,不仅仅是音频需要采样,所有的模拟信号都需要通过采样转换为可以用0101来表示的数字信号,示意图如下所示:

蓝色代表模拟音频信号,红色的点代表采样得到的量化数值。

采样频率越高,红色的间隔就越密集,记录这一段音频信号所用的数据量就越大,同时音频质量也就越高。

根据奈奎斯特理论,采样频率只要不低于音频信号最高频率的两倍,就可以无损失地还原原始的声音。

通常人耳能听到频率范围大约在20Hz~20kHz之间的声音,为了保证声音不失真,采样频率应在40kHz以上。常用的音频采样频率有:8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz、96kHz、192kHz等。

(2) 量化精度(位宽)

上图中,每一个红色的采样点,都需要用一个数值来表示大小,这个数值的数据类型大小可以是:4bit、8bit、16bit、32bit等等,位数越多,表示得就越精细,声音质量自然就越好,当然,数据量也会成倍增大。

常见的位宽是:8bit 或者 16bit

(3) 声道数(channels)

由于音频的采集和播放是可以叠加的,因此,可以同时从多个音频源采集声音,并分别输出到不同的扬声器,故声道数一般表示声音录制时的音源数量或回放时相应的扬声器数量。

单声道(Mono)和双声道(Stereo)比较常见,顾名思义,前者的声道数为1,后者为2

(4) 音频帧(frame)

这个概念在应用开发中非常重要,网上很多文章都没有专门介绍这个概念。

音频跟视频很不一样,视频每一帧就是一张图像,而从上面的正玄波可以看出,音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。

这个时间被称之为“采样时间”,其长度没有特别的标准,它是根据编解码器和具体应用的需求来决定的,我们可以计算一下一帧音频帧的大小:

假设某通道的音频信号是采样率为8kHz,位宽为16bit,20ms一帧,双通道,则一帧音频数据的大小为:

int size = 8000 x 16bit x 0.02s x 2 = 5120 bit = 640 byte

5. 常见的音频编码方式有哪些?

上面提到过,模拟的音频信号转换为数字信号需要经过采样和量化,量化的过程被称之为编码,根据不同的量化策略,产生了许多不同的编码方式,常见的编码方式有:PCM 和 ADPCM,这些数据代表着无损的原始数字音频信号,添加一些文件头信息,就可以存储为WAV文件了,它是一种由微软和IBM联合开发的用于音频数字存储的标准,可以很容易地被解析和播放。

我们在音频开发过程中,会经常涉及到WAV文件的读写,以验证采集、传输、接收的音频数据的正确性。

6. 常见的音频压缩格式有哪些?

首先简单介绍一下音频数据压缩的最基本的原理:因为有冗余信息,所以可以压缩。

(1) 频谱掩蔽效应: 人耳所能察觉的声音信号的频率范围为20Hz~20KHz,在这个频率范围以外的音频信号属于冗余信号。

(2) 时域掩蔽效应: 当强音信号和弱音信号同时出现时,弱信号会听不到,因此,弱音信号也属于冗余信号。

下面简单列出常见的音频压缩格式:

MP3,AAC,OGG,WMA,Opus,FLAC,APE,m4a,AMR,等等

7. Adndroid VoIP相关的开源应用有哪些 ?

imsdroid,sipdroid,csipsimple,linphone,WebRTC 等等

8. 音频算法处理的开源库有哪些 ?

speex、ffmpeg,webrtc audio module(NS、VAD、AECM、AGC),等等

10. Android提供了哪些音频开发相关的API?

音频采集: MediaRecoder,AudioRecord

音频播放: SoundPool,MediaPlayer,AudioTrack (它们之间的区别可以参考 这篇 文章)

音频编解码: MediaCodec

NDK API: OpenSL ES

11. 音频开发的延时标准是什么?

ITU-TG.114规定,对于高质量语音可接受的时延是300ms。一般来说,如果时延在300~400ms,通话的交互性比较差,但还可以接受。时延大于400ms时,则交互通信非常困难



~

"OOJ"缩写在软件开发中具体指什么?
答:当我们在讨论编程语言时,经常会遇到"OOJ"这个缩写,它实际上代表"Object Oriented Javascript",中文可以解释为“面向对象的JavaScript”。这篇文章主要关注这个术语的详细解释,包括其在计算机科学中所指的概念,以及在软件开发中的应用和使用频率。OOJ,全称为Object Oriented Javascript,其核心概念是将程序...

多媒体技术的基本概念有哪些?
答:③动态文字的开发。在多媒体教学软件中,经常用一些有一定变化的动态文字来吸引学生的注意力,开发这些动态文字的软件很多,方法也很多。首先,一般的多媒体体创作软件都提供了较为丰富的字符出现效果,象PowerPoint、Authorware等创作软件中 都有溶解、从左边飞入、百页窗等多种效果;其次也可以用动画制作软件来制作文字动画...

Java开发主要都学些什么内容?
答:Application是Java应用程序,在WEB项目和一些开发中主要应用JavaBean。它就是Application的一部分,逻辑运算能力很强,能极大的发挥Java语言的优点。JavaBean 被称为是Java 组件技术的核心。JavaBean 的结构必须满足一定的命名约定。JavaBean能提供常用功能并且可以重复使用,这使得开发人员可以把某些关键功能和核心算法提取出来封装...

说频是什么
答:除了语言学和文本挖掘领域,说频在其他领域也有着广泛的应用。例如,在市场营销中,通过分析消费者在购买行为中使用的关键词汇的频率,可以了解消费者的需求和偏好,为产品开发和营销策略制定提供依据。在社交媒体分析中,说频也被用于评估话题的热度和用户兴趣的变化趋势。总之,说频是一个重要的概念,它...

什么叫嵌入式开发?
答:嵌入式开发就是指在嵌入式操作系统下进行开发,常用的系统有WinCE,ucos,vxworks,linux,android等。另外,用c,c++或汇编开发;用高级处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用...

实体博物馆开发中常用的多媒体技术有哪些
答:多媒体音频技术是最基本的多媒体技术,也是应用最广泛的多媒体技术。使用该技术能传递出与展品内容相关的优雅、舒缓的音乐,使参观者有一种身临其境的感觉,不仅拉近了展品与参观者的距离,也加深了参观者对展览内容的理解。针对一些重点展品,利用该技术能制作一些自助式音频讲解内容,可以选择从不同深度...

常用的信息系统开发方法有信息系统开发中常用的两种基本方法
答:解答:1、信息系统开发中常用的两种基本方法是一种结构化方法和原型方法。信息系统经历了简单的数据处理信息系统、孤立的业务管理信息系统和集成的智能信息系统三个发展阶段。2、信息系统是以处理信息流为目的,由计算机硬件、网络和通信设备、计算机软件、信息资源、信息用户和规章制度等组成的人机集成系统。有...

...中在线教育APP的主要功能模块有哪些是经常用到的?
答:1:华盛恒辉科技有限公司 上榜理由:华盛恒辉是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在开发、建设到运营推广领域拥有丰富经验,我们通过建立对目标客户和用户行为的分析,整合高质量设计和极其新技术,为您打造创意十足、有价值的企业品牌。在军工...

软件开发需要学什么?
答:政府、社区、各类学校等部门的中、大型数据库管理员。4、WEB应用程序设计 具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。就业方向:企业、政府、社区、各类学校等WEB应用程序员。

游戏设计的概念是什么?
答:二、游戏开发常用软件 1、3dsMAX:大多数游戏开发公司美工使用,效率较高,可以独立制作游戏中所有美术相关资源。2、Delphi:直接编译生成可执行代码,编译速度快。由于Delphi编译器采用了条件编译和选择链接技术,使用它生成的执行文件更加精炼,运行速度更快。在处理速度和存取服务器方面,Delphi的性能远远高于...