![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android Audio学习
文章平均质量分 65
Android系统攻城狮
《Android系统多媒体进阶实战》一书作者 - 专注Android/Linux系统多媒体技术,与广大开发者一起日益精进。
展开
-
Audacity降噪消除视频中杂音
本篇目的:Audacity去掉噪声,只留人的声音。原创 2023-11-30 00:14:37 · 743 阅读 · 0 评论 -
秒懂音频采样、量化、编码原理
秒懂音频采样、量化、编码原理原创 2022-11-08 22:46:10 · 861 阅读 · 0 评论 -
音频混音算法介绍
1、混音的理论依据对语音信号的处理往往就是对语音样本以缓冲区为单位进行处理,也就是对输入的语音样本分成一帧一帧;当多个音频源一起播放时,人耳听到的声波是各个声源声波的线性叠加,这就是模拟混音的基础,这也表明了数字语音也是可以进行线性叠加的;2、混音算法2.1、传统的混音算法方法:对所有输入的音频数据进行线性叠加,这是所有混音算法的基础;缺点:极易产生溢出;改进方法1:箝位:当发生上溢时,箝位以后的值为所能表示的最大值,当发生下溢时,箝位后的值为所能表示的最小值;缺点:在溢出的地方引入了..转载 2021-06-08 10:20:24 · 5560 阅读 · 0 评论 -
usb audio知识点
已基本完成wavedev结构的usb音频驱动,现将开发心得及经验总结一下与大家分享/*****************************************************************************************/在做usb audio设备驱动开发前我还不知道有usb audio device class,以为这是个HID类型的驱动,开发起...转载 2019-11-06 19:26:48 · 7102 阅读 · 0 评论 -
AndroidO 下图形显示框架变化介绍
From原创 2019-04-17 23:50:54 · 448 阅读 · 0 评论 -
深入剖析Android音频之AudioPolicyService
FromAudioPolicyService是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。而AudioFlinger则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完成。AudioPolicyService根据用户配置来指导AudioFlinger加载设备接口,起到路由功能。...转载 2019-04-17 23:41:21 · 529 阅读 · 0 评论 -
PCM音量控制(高级篇)
From因为有人问到使用对数关系调节音量时,增益系数如何确定,故开此篇文章。声学中的分贝因为人耳的特性,我们对声音的大小感知呈对数关系。所以我们通常用分贝描述声音大小,分贝(decibel)是量度两个相同单位之数量比例的单位,主要用于度量声音强度,常用dB表示。声学中,声音的强度定义为声压。计算分贝值时采用20微帕斯卡为参考值(通常被认为是人类的最少听觉响应值,大约是3米以外飞行的蚊子...转载 2019-03-05 18:08:28 · 1501 阅读 · 0 评论 -
改变PCM采样点计算来控制音量
From一.声音的相关概念声音是介质振动在听觉系统中产生的反应。声音总可以被分解为不同频率不同强度正弦波的叠加(傅里叶变换)。声音有两个基本的物理属性:频率与振幅。声音的振幅就是音量,频率的高低就是指音调,频率用赫兹(Hz)作单位。人耳只能听到20Hz到20khz范围的声音。模拟音频(Analogous Audio),用连续的电流或电压表示的音频信号,在时间和振幅上是连续。在过去记...转载 2019-03-05 18:04:55 · 1635 阅读 · 0 评论 -
android audio 音量设置分析
Fromaudiod 中经常遇到的场景是音量调整与输出设备的切换,下面两篇文章 针对这两个场景分别分析一下1.第一种情况,如果是多路(new多个AudioTrack线程)mix混音的情况,就是MixerThread进行软件混音mixer,然后在mixer算法计算来增大/减少PCM采样点来控制音量,2.第二种方式,控制DAC硬件的增益,主要用在了DirectOutputThread,中,因...转载 2019-03-05 17:44:22 · 2412 阅读 · 0 评论 -
C++ 调节PCM音量
在用解码器解码音频数据得到PCM音频数据块之后,可以在将数据送给声卡播放之前调节其音量大小,PCM格式本身就是以一定的数据位记录音量的高低(如16位,便是以2个byte的长度记录采样时间点音量的大小),因此音频音量大小的调节原理就是调节这个值而已,非常的简单。需要注意的就是越界问题,在调节完后要做处理。 具体的实现函数如下void RaiseVolume(char* buf, UI...原创 2019-03-05 17:30:55 · 1092 阅读 · 0 评论 -
音频audio/sound声卡驱动分析
音频可以播放(可以听到声音), 说明音频解码和输出部分基本是正常的, 整个通道已经打通了. 感觉播放速度太快了(或太慢了)说明audio输出部分的频率不对, 太高了或者太低了.audio/sound音频部分涉及的几个频率: * 输出采样频率 fs = 44.1KHz. (也有其它fs的音源, 但加了resampler后, 都变成44.1KHz输出了). 这是个关键频率. ...转载 2019-01-23 16:34:07 · 1797 阅读 · 0 评论 -
Audio开发必备工具Audacity(for Mac)
下载地址原创 2019-01-07 15:54:56 · 1036 阅读 · 0 评论 -
Andorid音频工具tinymix,tinyplay,tinycap使用
原址由于ALSA架构太过于庞大,对于嵌入式设备而言很多功能用不到,且会增加功耗,所以Android采用了精简后的tinyalsa,tinyalsa相关的底层调试工具常用的有tinymix,tinyplay,tinycap,下面分别介绍他们的使用方法。1.tinymixtinymix可以查看系统的音频控件,可直接执行tinymix进行查看。tinymix更多的作用的是用来手动设置控件的值...转载 2019-01-04 13:28:07 · 7651 阅读 · 2 评论 -
AudioFlinger音频调试
原址原创 2018-11-30 15:28:44 · 622 阅读 · 0 评论 -
Linux音频驱动开发概括
原址1.嵌入式音频系统硬件连接下图所示的嵌入式设备使用IIS将音频数据发送给编解码器。对编解码器的I/O寄存器的编程通过IIC总线进行。2.音频体系结构-ALSAALSA是Advanced Linux Sound Architecture 的缩写,目前已经成为了linux的主流音频体系结构在内核设备驱动层,ALSA提供了alsa-driver,同时在应用层,ALSA为我们提供了a...转载 2018-11-13 16:46:53 · 1620 阅读 · 0 评论 -
高通平台音频调试常见问题点归纳
From以下是关于高通音频调试中遇到的一些常见问题点归纳,仅供参考,如有错误,请指正!1、Audio EC-VOIP软件主要需要设置EC_REF(echo reference 信号),在Audio HAL的platform.c中,确保VOIP所经过的代码通路调用platform_set_echo_reference(adev,true,out_device);同时,对应的mixer...转载 2019-04-18 21:09:41 · 4075 阅读 · 0 评论 -
Qualcomm Audio HAL 音频通路设置
From1. 音频框图概述| Front End PCMs | SoC DSP | Back End DAIs | Audio devices | *************PCM0 <------------> * * <----DAI0-----> Codec Headset ...转载 2019-04-18 21:18:21 · 1532 阅读 · 1 评论 -
Audio系统扫盲
From 1.1、响度(Loudness) 1.2、音调(Pitch) 1.3、音色(Quality) 1.4、样本(Sample) 1.5、采样器(Sampler) 1.6、量化(Quantization) 1.7、编码(Coding) 1.8、采样率(samplerate) 1.9、量化精度(位宽) 1.10、 声道数(channels) 1.11...转载 2019-05-30 13:23:43 · 4123 阅读 · 1 评论 -
如何把“底噪”压低、压低、再压低?
导 读:经常有人争论这个问题:有源音箱的底噪问题。有些人说一米能听到底噪叫正常,有些人说10厘米能听到底噪算正常,其实说一米也好,短点也好长点也好,没必要较真这是不是精确,道理很简单,距离不是影响判断的唯一因素,还有各人的听力好坏也要反过来影响距离。我要说明的是,凡是音响都有底噪,底噪一般指设备固有的电子噪音,如像粉噪一样的嘶嘶,而不是比较毛躁的嗤嗤声,后者的确是功放电路或使用环境里的电源有问...转载 2019-09-09 16:23:14 · 15222 阅读 · 0 评论 -
Andorid audio设备名和音频基本概念
音频设备Handset 听筒Headset 耳机Headphone 耳机,不带micSpeaker 扬声器Microphone 麦克风mono 单声道stereo 立体声数据量(字节/秒) = 采样率(Hz) * 采样大小(bit) * 声道数 / 8相关概念Sample:样本长度,音频数据最基本的单位,常见的有8位和16位。Channel:声道数,分为单声...转载 2019-08-26 15:12:03 · 495 阅读 · 0 评论 -
I2S音频总线学习
I2S(Inter-IC Sound)是飞利浦公司针对数字音频设备(如CD播放器、数码音效处理器、数字电视音响系统)之间的音频数据传输而制定的一种总线标准。它采用了沿独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。I2S有3个主要信号(3根线):1.串行时钟SCK,也叫位时钟(BCLK),即对应数字音...转载 2019-08-24 15:38:19 · 700 阅读 · 1 评论 -
Android之汽车音频
From汽车音频这一部分详细介绍了与汽车相关的 Android 实现采用的音频架构。实现汽车音频系统的原始设备制造商 (OEM) 和其他 Android 开发者除了查看主要音频部分的内容外,还应仔细查看本部分中的所有内容。主要概念Android 负责信息娱乐声音(例如媒体、导航和通讯声音),但不直接负责具有严格可用性和时间要求的铃声和警告。外部声源由负责音频焦点的应用表示。不过,您...翻译 2019-06-28 23:50:18 · 4217 阅读 · 0 评论 -
Android音频架构
主要分为四个层次: 1.最底层是硬件层; 2.在这之上的是驱动层,这一层一般codec芯片会给一个基本的驱动示例; 3.在这之上是Linux的框架层,ALSA, 4.这之上是安卓audio管理层;+ALSA System on Chip(ASoC)ASoC 驱动将一个audio子系统分成四个部分: Machine driver, Platform driver, CPU driver...转载 2019-07-02 13:24:10 · 4978 阅读 · 0 评论 -
MT6737 Audio之TinyAlsa
FromTinyAlsa(精简版alsa)是 Android 默认的 alsalib, 封装了内核 ALSA 的接口,用于简化用户空 间的 ALSA 编程。tinyalsa位于Android源码的external/tinyalsa位置。关于tinyalsa,tinyalsa是Google在Android 4.0之后推的基于alsa内核的用户层音频接口。在Android 4.0之前还一直...转载 2019-06-18 14:24:53 · 1731 阅读 · 0 评论 -
Linux ALSA音频子系统二
From本文以高通平台为例,介绍一下android下的音频结构。android使用的是tinyALSA作为音频系统,使用方法和基本框架与linux中常用的ALSA音频子系统是一致的。ALSA音频框架ALSA(Advanced Linux Sound Architecture)是一个开源项目(http://www.alsa-project.org/) ,在Kernel 2.6正式版本被引...转载 2019-06-18 14:01:19 · 1533 阅读 · 1 评论 -
Audition报错:“无法应用设备设置,因为发生了以下错误:MME设备内部错误“
打开Audition---->编辑 ---->首选项 ---->常规 ---->音频硬件 ----> 把默认输入:选择"无输入"即可.原创 2019-06-13 12:53:52 · 18587 阅读 · 1 评论 -
Android新增usb Audio(mic)设备
From可以先去掉Audio喇叭模块:# cat /proc/asound/cardskernel-3.10/arch/arm64/configs/defconfig-CONFIG_SND_USB_AUDIO=y*************************************************************************************...转载 2019-05-30 16:19:12 · 5840 阅读 · 0 评论 -
linux audio(alsa)驱动注册的简明流程.
原址本文以max98088为参照设备进行。大体结构: cpu_dai-------指的是I2C通路.codec_dai-----codec的功能,如录音放音参数。codec_dev-----解码设备,重点platform------据我看只是做了pcm的操作函数和分配dma用的1. 在文件中注册soc-audio设备,以唤醒soc-core中的probe我们的注册 ou...转载 2018-11-05 18:12:33 · 1659 阅读 · 0 评论 -
msm8996平台的一些debug方法
原址本文中基于一些基于msm8996平台的bsp和kernel调试的一些节点和方法,有些与高通平台相关,但大部分应该是linux通用的调试信息,未经仔细整理,只当随笔记录了。android版本是7.1,kernel版本是3.18。regualtor msm8996:/d/regulator/pm8994_l17 # ls -l total 0 drwxr-xr-x 2 root r...转载 2018-11-02 14:27:24 · 2065 阅读 · 0 评论 -
qcom 音频相关的dsp driver笔记(基于msm8996平台)
原址0 前言1 关于acdb1.1 从audio_calibration.c说起1.2 关于acdb配置的注册1.3 关于acdb配置过程2 关于dsp driver3 关于asm4 关于adm5 关于afe6 关于apr消息7 关于channel map附录 关于afe port id关于音频框架的大致架构,高通文档原话: 这里其实就说明了,qcom的音频框架底层...转载 2018-11-02 14:23:50 · 4595 阅读 · 0 评论 -
PCM数据格式
原址1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有 22050 次采样转载 2017-06-14 19:22:12 · 695 阅读 · 0 评论 -
如何使Android录音实现内录功能
原址背景之前在做直播的时候需要使用到内录功能,比如经常看到游戏主播在直播玩游戏,游戏的声音不是通过MIC录制的,而是内录完成的。故在此记录一下。相信大家都很熟悉Android如果录音的了: int frequency = 44100; int audioEncoding = AudioFormat.ENCODING_PCM原创 2017-06-27 15:51:44 · 12907 阅读 · 6 评论 -
I2S,PCM,IOM-2,I2C,SPI,UART,GPIO
概述I2S,PCM,IOM-2都是数字音频接口,传数据的。I2C,SPI,UART,GPIO是控制接口,传控制信令的。I2SI2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频 数据传输而制定的一种总线标准。 I2S至少3根线:1. 比特时钟线首先解释一下比特时钟线。比特时钟线上对每个bit有一个脉冲,比特时钟频率是2×采样频率转载 2017-06-09 15:58:12 · 1123 阅读 · 0 评论 -
Android多媒体:AudioTrack
原址AudioTrack是和PlaybackThread中创建的Track一一对应的,Track是Bn,AudioTrack是Bp。音乐APP通过操作AudioTrack来进行音乐数据的传输。具体过程如下:应用initAudioTrack ,new一个AudioTrack, 注意里面的flag(比如AUDIO_OUTPUT_FLAG_FAST,那说明这个output是需转载 2017-06-09 15:56:03 · 791 阅读 · 0 评论 -
Android音量设置流程干货版
原址1. 音量级数定义在AudioService.Java中定义了最大音量MAX_STREAM_VOLUME,手机的设置property可以覆盖它。2. 音量初始化initStreamVolume传入AudioPolicyManagerBase里的StreamDescriptor mStreams[AudioSystem::NUM_STREAM_TYPES];转载 2017-06-09 15:52:29 · 1536 阅读 · 0 评论 -
深入剖析Android音频(四)AudioTrack
原址播放声音可以用MediaPlayer和AudioTrack,两者都提供了Java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。而AudioTrack只能播放已经解码的PCM流,如果转载 2017-06-08 14:07:51 · 1283 阅读 · 0 评论 -
深入剖析Android音频(三)AudioPolicyService
原址AudioPolicyService是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。而AudioFlinger则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完成。AudioPolicyService根据用户配置来指导AudioFlinger加载设备接口,起到路由功能。转载 2017-06-08 14:05:53 · 1373 阅读 · 0 评论 -
深入剖析Android音频(二)AudioSystem
原址AudioSystem是AudioPolicyService和AudioFlinger对外提供接口类。转载 2017-06-08 14:03:31 · 977 阅读 · 0 评论 -
Android系统Audio框架介绍(一)
原址音频基础知识声音有哪些重要属性呢?响度(Loudness)响度就是人类可以感知到的各种声音的大小,也就是音量。响度与声波的振幅有直接关系。音调(Pitch)音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低。音色(Quality)同一种乐器,使用不同的材质来制作,所表现出来的音色效果是不一样的,这是由物体本身的结构特转载 2017-06-08 14:00:52 · 6717 阅读 · 0 评论 -
Android Audio System 架构初探(好文)
原址Audio系统一些基本概念采样率:用一堆离散的数字表示真实世界里连续的声音信号,需要对其进行采样,理论基础是奈奎斯特采样定理。采样率的单位是赫兹,就是说一秒有多少个采样,一般数字音频的采样率通常为8k~48k,一些hifi系统的采样率可以达到192k。奈奎斯特采样定理:当对被采样的模拟信号进行还原时,其最高频率只有采样频率的一半。位深:一个系统用多少个bit来表示一转载 2017-06-07 20:12:56 · 5241 阅读 · 0 评论