现在手机的录音的采样率设备都支持8000hz采样吗

面市设备/电话录音
1、录音电话机2、USB电话录音盒3、PCI电话录音卡4、电话录音仪5、电话录音系统6、网口电话录音盒电话录音7、电话录音软件Phone spy
重要性/电话录音
1、电话录音可完善企业电话管理制度2、记录每个来电为日后业务跟踪做基础3、电话定单繁忙时可随时重听通话内容4、实时录音让您的电话业务避免口说无凭5、在业务发生纠纷时可做法律证据6、考察企业电话与人力资源的利用率7、解决电话繁忙时可能出现遗漏而错过商机8、集体分析重要客户电话商谈时的心理从而共同制定业务对策9、全面考察企业员工的工作能力、业务水平、电话礼仪规范10、迅速发现及杜绝有损害企业利益行为11、降低公司电话费开支,追查大额话单通话内容12、长期保存通话记录避免员工离职丢失公司客户
电话录音/电话录音
1.压控。即摘机就开始录音。2.键控。即用座机按键控制录音开始和停止。3.声控。线路中出现声音后开始录音。4.极性反转。
基本内容/电话录音
电话机附带留言录音功能。以先锋VA-BOX350A数码录音电话机为例:1、录音特性·可以连续录音350~360小时,按照每天通话30次,每次通话2分钟计算,可保留长达360天的通话内容;·数字化录音,录音的音量可以AGC自动增益控制,保证通话双方的音量平衡;·录音文件采用数码存储技术,选用FLASH芯片作为存储介质,可以永久保存,掉电不丢失;·提供强制录音、应答录音两种录音方式;前者完全自动地所有通话进行强制录音,后者根据用户按键来录制指定的通话内容,适应各种应用场合的需求;·用户可以从液晶显示屏上看到已录通话次数、存储空间容量和使用情况,充分掌握录音时限;·先锋VA-BOX、VC-BOX数码录音电话机自带USB接口,可以把录音内容以文件的形式复制到电脑上保存;2、自动答录留言特性·具有自动答录留言功能和本地留言功能,相当于一台电话答录机;· 用户可以自由设定自动答录前的振铃次数,当电话来电振铃超过设定次数而用户没有摘机的情况下(一般为主人外出),先锋VA-BOX、VC-BOX数码录音电话机自动应答并提示用户留言;·用户可以自己录制自动应答的声音内容(主人留言)并且可以随时更改;·用户还可以使用本地留言功能,为电话机的其它用户留下真实声音的提示便条。该功能还可以作为现场录音使用;3、放音特性·采用高保真技术,高品质语音播放,音质清晰、柔和。·在播放录音的过程中,用户可以随时按键来调整音量大小。·除了可以逐条自动播放外,用户可以按键快速跳过本条录音而播放下一条或者上一条录音。· 用户密码控制放音功能,当密码为空或者0000的时候,任何用户都可以播放本机录音;而当用户设定了自己的用户密码时,只有输入了正确的密码才可以收听本机录音,防止非法用户使用。4、查询检索和管理特性·按照日期查询:用户输入需要查询的日期,机器自动播放该日期的全部所有录音·按照序号查询:用户输入指定的录音序号,机器自动播放所查询到的该条录音。·独具两级密码权限保护,用户密码可以控制录音播放权限,而管理密码就控制了录音删除的权限。·提供Windows版本的录音管理软件以便用户通过PC机使用检索、查询、复制、删除等录音管理功能。5、电话机特性·具备普通电话的所有先进功能,包括:·来电显示,支持FSK和DTMF等所有国家标准制式的来电显示。·提供120组未接电话、已接电话、已拨电话等电话号码记录以及通话日期时间的查询、删除功能。·对于新语音和新来电,液晶屏上有明显动态闪烁标识进行提示,方便用户操作。·支持免提通话、自动重拨功能。·提供通话静音功能,用户在通话过程中可以按键将通话静音,并可以随时按键恢复正常通话。6、电源特性·采用直流DC9V通信电源供电。·停电时自动切换到电池供电,采用4节1300mA标准充电电池可以保障3小时正常工作。·在没有任何额外供电的情况下,电话机功能仍然可用,保证正常通讯。·PCManager录音管理软件可以安装在PC机、笔记本电脑上,通过USB接口对先锋VA-BOX、VC-BOX数字录音电话机进行管理。·用户可以通过PCManager软件可以对录音文件进行复制、删除、保存、播放、发送邮件等操作,还可以将录音文件上传到PC机、笔记本电脑上保存备份。·管理软件拓展了录音电话机的存储能力,使得更多的电话录音能够保存下来。·可以完整的检测并记录所有外拨电话号码与来电显示号码。强大的电话管理功能,可以对所有的拨入、拨出电话进行清单列表、打印、汇总、分组等;9、新增功能:个性化铃声·新增13种和弦铃声,可随意替换,告别单调铃声,比以往的单音铃声音色更丰富,有强烈的立体感;提供8级铃声音量调节,适用于更多不同场合。·精良的做工与外观,功耗更低,更安全稳定的充电电路,人性化的分机接口与闪断功能,通话与录音的语音音质更佳。
格式分类/电话录音
采样率:Sample Rate,即每秒钟采用多少语音样本点 声道:Channels,即录音文件为单声道Mono或者立体声Stereo 采样值,采样精度:Resolution,即每个样本点采用多少位来进行表示, 比如8bit则代表1个字节 标准的录音系统支持以下语音格式:
每秒数据量
每1000小时数据量
选型重点/电话录音
基本功能:提供基本的录音、监听、查询、回放、管理等功能可靠性、稳定性:能适应大量的并发多路同时录音,长时间(7×24小时〕不间断运行的需要而不停机。可维护性、可操作性:系统易于操作管理,无需安装维护升级大量的客户端软件,网络查询使用,设计界面人性化,软件体系架构符合技术发展趋势。可扩展性:改变系统体系架构或进行硬件升级时,不会对目前运行的系统产生大的冲击,软件功能更能方便扩充。性能和容量:当有大量的并发操作如录音、查询、回放时,系统运行性能不会降低。可重用性:系统可以与客户的其它业务系统互联互通,功能可以被重用,不仅仅为录音本身而用,录音的数据可以被继续利用能真正成为企业的资产。录音播放:这是一个很重要的技术点,录音播放是完全基于网络应用的以流媒体方式实现,即使是体积很大的录音文件也只需等待2~3秒便可播放。而市场上相当多的录音软件在播放录音时,是以文件查找后播放的方式,等待时间长,管理不方便。安全性:包含一定安全强度的用户登录认证,密码/密钥不应该是明文,应该使用加密强度较高的算法如3DES或SHA或MD5这类强度的加密算法。用户权限认证-功能权限认证:不同的操作员有不同角色,而不同的角色有对系统各菜单有不同的使用权限。用户权限认证-数据权限认证:不同的操作员根据其组织层次关系的不同(组长、组员、部门经理等〕所访问的数据是不一样的。
&|&相关影像
互动百科的词条(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。未经许可,禁止商业网站等复制、抓取本站内容;合理使用者,请注明来源于。
登录后使用互动百科的服务,将会得到个性化的提示和帮助,还有机会和专业认证智愿者沟通。
此词条还可添加&
编辑次数:20次
参与编辑人数:12位
最近更新时间: 09:44:14
申请可获得以下专属权利:
贡献光荣榜2012年4月 专题开发/技术/项目大版内专家分月排行榜第二2012年3月 专题开发/技术/项目大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。Android手机直播(三)声音采集 - 简书
Android手机直播(三)声音采集
一、文章说明
开始写文章了,才知道写文章真心耗费心力,希望自己尽量做到快速更新,也希望这些文章真心能帮助到开发者们。这篇文章主要讲述Android声音采集相关的知识,首先介绍声音的基础知识,然后介绍如何采集声音,最后再讲述Android上声音录制和回声消除的相关步骤。
整个项目已经开源,开源地址:
二、基础知识
声音的原理
声音是振动产生的声波,通过介质(空气或固体、液体)传播并能被人或动物听觉器官所感知的波动现象。声音的频率一般会以赫兹表示,记为Hz,指每秒钟周期性振动的次数。而分贝是用来表示声音强度的单位,记为dB。声音是一种波动,当演奏乐器、拍打一扇门或者敲击桌面时,声音的振动会引起介质——空气分子有节奏的振动,使周围的空气产生疏密变化,形成疏密相间的纵波,这就产生了声波,这种现象会一直延续到振动消失为止。任何器官所接收的声音频率都有其范围限制。人类的耳朵一般只能听到约在20Hz至20000 Hz(20kHz)范围内的声音,其上限会随年龄增加而降低。其他物种动物的听觉频率范围也有所不同,像狗可以听到超过20kHz的声音,但无法听到40Hz以下的声音。不同物种动物的听觉频率范围如下:
蝙蝠:Hz 海豚:Hz 猫:60~65000Hz 狗:40~50000Hz 人:20~20000Hz
红:次声波、蓝:可听声波、绿:超声波
麦克风采集
麦克风(又称微音器或话筒,正式的中文名是传声器),译自英文microphone,是一种将声音转换成电子信号的换能器。根据麦克风的制作原理,分为以下几类:
动圈麦克风 动圈式麦克风基本构造包含线圈、振膜、永久磁铁三部分。当声波进入麦克风,振膜受到声波的压力而产生振动,与振膜连接在一起的线圈则开始在磁场中移动,根据法拉第定律以及楞次定律,线圈会产生感应电流。动圈式麦克风因为含有线圈和磁铁,不像电容式麦克风轻便,灵敏度较低,高低频响应表现较差。优点是声音较为柔润,适合用来收录人声。
1、声波 2、振动膜 3、线圈 4、磁铁 5、输出信号
电容式麦克风电容式麦克风并没有线圈及磁铁,靠着电容两片隔板间距离的改变来产生电压变化。当声波进入麦克风,振动膜产生振动,因为基板是固定的,使得振动膜和基板之间的距离会随着振动而改变,根据电容的特性,当两块隔板距离发生变化时,电容值C会产生改变,又由于Q = C * V,当C改变时就会造成电量Q的改变。因为在电容式麦克风中需要维持固定的极板电压V,所以此类麦克风需要额外的电源才能运作,一般常见的电源为电池。电容式麦克风因灵敏度较高,常用于高质量的录音。
1、声波 2、振动膜 3、基板 4、电池 5、电阻 6、输出信号
驻极体电容麦克风电容式麦克风一般需要额外的电源才能运作,但是驻极体电容麦克风却可以不需要额外的电源。驻极体又叫“永电体”,本身会带有固定数量的电荷数,整个线路没有电量消耗(线路去除上图的电池和电阻),根据公式:Q =CU 所以当C变化时必然引起电容器两端电压U的变化,从而输出电信号,实现声—电的变换。由于实际电容器的电容量很小,输出的电信号极为微弱,输出阻抗极高,可达数百兆欧以上。因此,它不能直接与放大电路相连接,必须连接阻抗变换器。通常用一个专用的场效应管和一个二极管复合组成阻抗变换器。由于场效应管是有源器件,需要一定的偏置和电流才可以工作在放大状态,因此,驻极体话筒都要加一个直流偏置才能工作。
微机电麦克风微机电麦克风指使用微机电技术做成的麦克风,也称麦克风芯片或硅麦克风。 微机电麦克风的压力感应膜是以微机电技术直接蚀刻在硅芯片上,此集成电路芯片通常也集成入一些相关电路,如前置放大器。 大多数微机电麦克风的设计,在基本原理上是属于电容式麦克风的一种变型。 微机电麦克风也常内置模拟数字转换器,直接输出数字信号,成为数字式麦克风,以利与现今的数字电路连接。微机电麦克风的主要应用于部分的手机、PDA等小型移动产品。
还有其他类型的麦克风在这就不多做讲述。
麦克风降噪
随着科技的发展,现在即使在非常嘈杂的环境下,接听电话的另一方也能听得清清楚楚,这主要得益于手机降噪技术的发展。在现在的手机我们常常看到不仅仅只有一个麦克风,而是有2个甚至是3个,而这多出来的几个就是手机降噪的关键。
麦克风降噪
一般来说手机都有两个麦克风,顶部和底部都各有一个。这两个麦看起来都非常小,但是两者的作用有着明显的区别,其中底部的麦是用来提供清晰通话,而顶部的麦是用来消除噪音。由于顶部和底部在通话时距离音源的距离不同,所以两个麦拾取的音量大小也是有不同的,利用这个差别,我们就可以过滤掉噪声保留人声了。在打电话时,两个麦克风所拾取的背景噪声音量是基本相同的,而记录的人声会有6dB左右的音量差。顶端麦收集噪声后,通过解码生成补偿信号后就可以用来消除噪音了。
回声(或称回音)是指障碍物对声音的反射。声波在遇到障碍物时,一部分声波会穿过障碍物,而另一部分声波会反射回来形成回声。若障碍物具有坚硬光滑的表面易产生回声;反之,具有柔软的表面则易吸收声音;另外,粗糙的表面易散射声音。回声相比那些直接传播的声音所经过的路程更长,所以会比直接传播的声音晚被听到。如果两列声波的时间间隔小于0.1秒,人耳边无法分辨,只能听到被延长的声音。因为室温(20℃)时空气中的声速是343米每秒,所以站在声源处的人要听到回声需要障碍物到声源的距离至少17米。
很多时候直播有连麦的需求,这时候就需要对采集的声音进行回声消除。当处在连麦的情况下,手机一边播放对方的声音,一边用麦克风进行采集,然后又将采集的声音传送给对方,这样的话对方就会听到自己的回声,由于这个循环回路一直进行,从而就会使得回声越来越多,最后出现嗡鸣声。回声消除就是在麦克风录制外音的时候去除掉手机自身播放出来的声音,这样就将对方的声音从采集的声音中过滤出去,从而就避免了回声的产生。下面一张图片很好展示了回声消除的机制。
在近端,麦克风会采集到扬声器播放出来的远端声音,假设这路声音为y(n),当然由于需要将远端传来播放出来,我们当然能得到远端传来的声音信号,假设这路声音为x(n)。不难发现x(n)经过扬声器的播放,然后经过空气的传播,最后被麦克风采集,然后变为y(n),x(n)和y(n)具有明显的相关性。假设麦克风采集到的总声音信号为z(n),这时候需要通过自适应滤波器根据x(n)找出z(n)中的y(n),然后从z(n)中过滤掉y(n)。
三、声音采集
在之前已经讲述了麦克风的工作原理,麦克风采集到声音后转化为模拟电信号,之后需要将模拟电信号数字化转化为计算机能够识别的模拟信号。
Android中利用AudioRecord可以录制声音,录制出来的声音可以设置为PCM声音。想要将声音用计算机语言表述,则必须将声音进行数字化。将声音数字化,最常见的方式是通过脉冲编码调制PCM(Pulse Code Modulation) 。声音经过麦克风,转换成一连串电压变化的信号。要将这样的电压变化的信号转化成为PCM信号则需要进行三个过程:抽样、量化、编码。要实现这三个过程,则需要使用三个参数,它们是:采样频率、采样位数和声道数。
Pulse Code Modulation
1、采样频率
采样频率即取样频率,指每秒钟取得声音样本的次数。采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多。由于人耳的分辨率很有限,太高的频率并不能分辨出来。在16位声卡中有22KHz、44KHz等几级,其中,22KHz相当于普通FM广播的音质,44KHz已相当于CD音质了,目前的常用采样频率都不超过48KHz。
2、采样位数
采样位数即采样值或取样值(就是将采样样本幅度量化)。它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。它的数值越大,分辨率也就越高,所发出声音的能力越强。在计算机中采样位数一般有8位和16位之分,8位不是说把纵坐标分成8份,而是分成2的8次方即256份; 同理16位是把纵坐标分成2的16次方65536份。采样率和采样大小的值越大,记录的波形更接近原始信号。
很好理解,有单声道和立体声之分,单声道的声音只能使用一个喇叭发声(有的也处理成两个喇叭输出同一个声道的声音),立体声的pcm可以使两个喇叭都发声(一般左右声道有分工) ,更能感受到空间效果。
那么,现在我们就可以得到pcm文件所占容量的公式:存储量 = (采样频率 · 采样位数 · 声道 · 时间)/8 (单位:字节数)
四、Android声音录制
Android中使用AudioRecord录制声音,根据上面讲述的声音采集原理,需要传递给AudioRecord采样频率、采样位数和声道数,除此之外还需要传入两个参数,一个是声音源,一个是缓冲区大小。
在Android中录制声音需要相应的权限,注意动态申请权限的问题。
&uses-permission android:name="android.permission.RECORD_AUDIO" /&
下面是Android支持的音频源:
/** 默认声音 **/
public static final int DEFAULT = 0;
/** 麦克风声音 */
public static final int MIC = 1;
/** 通话上行声音 */
public static final int VOICE_UPLINK = 2;
/** 通话下行声音 */
public static final int VOICE_DOWNLINK = 3;
/** 通话上下行声音 */
public static final int VOICE_CALL = 4;
/** 根据摄像头转向选择麦克风*/
public static final int CAMCORDER = 5;
/** 对麦克风声音进行声音识别,然后进行录制 */
public static final int VOICE_RECOGNITION = 6;
/** 对麦克风中类似ip通话的交流声音进行识别,默认会开启回声消除和自动增益 */
public static final int VOICE_COMMUNICATION = 7;
/** 录制系统内置声音 */
public static final int REMOTE_SUBMIX = 8;
缓冲区大小
接下来便是要设置缓冲区大小。麦克风采集到的数据先放置在一个缓冲区里面,之后我们再从这个缓冲区里面读取数据,从而获取到麦克风录制的音频数据。在Android中不同的声道数、采样位数和采样频率会有不同的最小缓冲区大小,当AudioRecord传入的缓冲区大小小于最小缓冲区大小的时候则会初始化失败。大的缓冲区大小可以达到更为平滑的录制效果,相应的也会带来更大一点的延时。
声音缓冲区
通过下面的方法可以获得最小缓冲区的大小:
AudioRecord.getMinBufferSize(frequency, channelConfiguration, audioEncoding);
当获取失败后会返还负数,根据错误码可以得到相应的错误信息。
在对AudioRecord进行录音前需要对采样率进行设置,对于采样率,Android官方文档要求所有的手机需要对44100Hz的采样率进行支持,可是国内的一些极其少数的手机依然不支持44100Hz的采样率。以下是几种常见的采样率:
在设置采样率之前需要对手机对设置的采样率是否支持进行检测,下面是一段代码是获取手机支持的音频采样率:
public void getValidSampleRates() {
for (int rate : new int[] {, 1, 44100}) {
// add the rates you wish to check against
int bufferSize = AudioRecord.getMinBufferSize(rate, AudioFormat.CHANNEL_CONFIGURATION_DEFAULT, AudioFormat.ENCODING_PCM_16BIT);
if (bufferSize & 0) {
// buffer size is valid, Sample rate supported
为了达到立体声的效果,Android也是支持多个声道采集的,一些情况下为了完成在所有手机上的视频,我们需要把声道设置为AudioFormat.CHANNEL_CONFIGURATION_MONO(单声道)。对于采样位数,选的值也是以常量的形式定义在 AudioFormat 类中,常用的是 ENCODING_PCM_16BIT(16bit),ENCODING_PCM_8BIT(8bit),ENCODING_PCM_16BIT可以保证兼容所有Android手机的。
下面便是AudioRecord的初始化方法:
public AudioRecord(int audioSource, int sampleRateInHz, int channelConfig,
int audioFormat, int bufferSizeInBytes) throws IllegalArgumentException
当传入的参数出现问题时会抛出异常。AudioRecord有一个状态量用来表示AudioRecord是否被成功初始化,通过getState()方法可以获取,当返回为STATE_UNINITIALIZED表示未成功初始化,当返回为STATE_INITIALIZED表示已经成功初始化了。
AudioRecord通过下面的方法可以读取到相应的录音数据:
public int read(@NonNull byte[] audioData, int offsetInBytes, int sizeInBytes) {
return read(audioData, offsetInBytes, sizeInBytes, READ_BLOCKING);
当读取失败的时候会返回相应的负数错误码。
Android手机有很多厂商,对于开发者来说兼容性一直以来都是一个重要的问题。在录音过程中,Android推荐的参数如下:
sampleRateInHz = 44100;
channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;
audioFormat = AudioFormat.ENCODING_PCM_16BIT
五、Android回声消除
在Android中回声消除可以通过三种方式进行处理:1、通过VOICE_COMMUNICATION模式进行录音,自动实现回声消除;2、利用Android自身带的AcousticEchoCanceler进行回声消除处理;3、使用第三方库(Speex、Webrtc)进行回声消除处理。
使用AudioRecord模式进行录音的时候,需要将AudioManager设置模式为MODE_IN_COMMUNICATION,还需要将麦克风打开。有一点需要特别注意,音频采样率必须设置8000或者16000,通道数必须设为1个。
AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE);
audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
audioManager.setSpeakerphoneOn(true);
使用AcousticEchoCanceler过程比较简单,录制声音的时候可以通过AudioRecord得到AudioSessionId,在创建AudioTrack的时候也可以传入一个AudioSessionId,这时候将这个统一的AudioSessionId传入AcousticEchoCanceler,那么AcousticEchoCanceler将根据之前讲过的回声消除的原理进行回声消除。
private void initAec(int audioSessionId) {
if(!AudioAecUtils.isAcousticEchoCancelerApproved()) {
aecSwitch.setEnabled(false);
aec = AcousticEchoCanceler.create(audioSessionId);
if (aec == null) {
Log.e(TAG, "AcousticEchoCanceler.create failed");
aecSwitch.setEnabled(false);
private boolean setEnableAec(boolean enable) {
if (aec == null) {
int ret = aec.setEnabled(enable);
if (ret != AudioEffect.SUCCESS) {
Log.e(TAG, "AcousticEchoCanceler.setEnabled failed");
if(enable) {
Log.d(TAG, "Aec On");
Log.d(TAG, "Aec Off");
当使用Speex或者Webrtc第三方库进行回声消除的时候,需要将采集到的音频数据传入作为源数据,需要将此刻播放的音频数据传入作为参考数据,然后还需要传入一个延时间隔,这样第三方库就能工作,从而得到回声消除后的声音。因为播放的声音需要传播,而且麦克风采集声音还有相应的缓冲区,因此需要传入一个延时间隔。关于Speex和Webrtc在github上能找到相应的Android ndk库。
本人三种方式都进行了尝试,发现第一种效果最好,兼容性也较好,因为手机免提通话的时候就进行了回声消除处理,所以基本上所有的手机是支持的。第二种方式支持的很少,Nexus 5支持第二种方式。理论上第三种方式兼容性最好,但是本人多次实验发现要设置合适的延时间隔很难,有些时候设置好了,但是通话一段时间效果又变差。
六、相关链接
七、结束语
终于写完了,各位看官觉得文章不错的话不妨点个喜欢~
如切如磋,如琢如磨。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
设信道带宽为3400Hz,采用PCM编码,采样周期为125b/s,每个样本量化为128个等级,解析:采样周期为125b/s所以为8000Hz,即,f=1/T=1/0.0HZ,125是怎样转换成0.000125的.1/0.000125怎样得到的Hz
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
采样周期怎么可能是个比特率的数呢,你按量纲看比特率是bit每秒显然不能是周期啊.应该是125us这样不就是0.000125s么.至于怎么得到HZ就更简单了,HZ是频率,描述的是你一秒内进行的次数.你的周期是125us那你一秒会采样多少次呢,当然是用1秒除以125us不就得到8000HZ了么
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 android 录音采样率 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信