您正位于上海站,点击转到香港站
X 网 站 导 航
网址二维码
点击或扫描二维码登录本站手机版
吉他福
视频
Video
主题
Topic
琴谱
Tab
教程
Book
入门
Begin
首页
Home
常见音频API简介:MME、DS、WDM、KS、WASAPI、ASIO、EAX、OpenAL【转】   电脑技术     本文作者:老贾29号   发布时间:2023/10/23 13:52:00   阅读次数:       支持       中立       反对   转自:https://qiaodahai.com/audio-apis.html?text=%E8%AE%BE%E7%BD%AEDirect,%E5%88%B060%E6%AF%AB%E7%A7%92%E5%B7%A6%E5%8F%B3%E3%80%82

常见音频API简介

在计算机系统中,如果需要输出音频,就要用特定的方法去驱动Codec、DAC等音频芯片。在调动音频芯片的过程中,需要用到一些特殊的应用程序编程接口,也就是音频API。使用音频API,音频软件如播放器等就可以直接针对API设计输出程序,而不必针对不同的芯片使用不同的指令。

常见的音频API有MME、DS、WDM、KS、WASAPI、ASIO等。





MME(WaveIn/WaveOut)

MME是最常见的Windows音频API,全称为MutiMedia Extensions,即多媒体扩展技术。它历史悠久,兼容性好,市面上基本所有设备都能良好支持。它属于高级的API,并不直接和硬件交流,需要通过层层接口才能访问音频硬件,这也为它带来了高延迟。虽说这种延迟在回放音频的时候并不会造成音质的劣化,但对音频的处理和录制却有着较大的负面影响。

MME使用waveIn****/waveOut****系列API来完成对音频的处理。程序启动后用waveIn****系列函数打开声卡输入功能,同时将缓冲区设定到足够小的值,然后开始将音频数据录制到设定的缓冲区,当缓冲区满后再将缓冲区(WAVHDR)直接加入到waveOut****系列函数的输出队列中即可。此方法实现较简单,缺点是MME为高级API,因此在整个过程中需要走过很多系统处理阶段,导致延迟较大。若缓冲区太小会导致声音断断续续。一般最小延迟可到120毫秒左右。

WaveOut是微软最早提出的音频流输出方式,所以它的兼容性也就好,几乎所有的微软操作系统和声卡都支持;但它无法支持“混和多重音频流”的功能,没有使用任何的硬件加速,所有的混音动作都是用软件来执行的。

DirectSound(DS)

Windows95发布后,微软发现游戏商还是乐意用DOS作为游戏平台,原因是游戏开发商发现Windows95并不适合执行视频和音频任务,因为WinAPI32包含的多媒体函数响应太慢了。微软于是推出了著名的DirectX,DirectX是一套视频音频API以及视频音频的DSP(效果器)API。DirectSound是其中的一部分,DirectSound有2D/3D之分,DirectSound有效果器函数,因此在输出的时候还可以加入回声等效果,用来仿真真实的声效环境。 DirectSound主要为游戏提供服务,在一些播放器以及音频编辑器上,DirectSound也被作为实时效果API使用。DirectSound 注重输出,输入方面并没有特色。只要硬件支持,DirectSound能够明显加速输出响应。Windows的音频输出响应速度提高到了一个新的档次。除了古老的某些声卡之外,几乎所有声卡都支持DirectSound,至少支持DirectSound 2D。

2006年11月,微软发布Windows Vista,Vista出人意料的放弃了对DirectSound 3D 硬件层(HAL)的支持,也就是说,那些支持DirectSound 3D硬件加速的声卡,通通失去了加速能力。最新发布的Windows 7继承了Vista的这个特性,DirectSound 3D硬件加速退出历史舞台。

DirectX Sound侧重于音频输出,能直接访问硬件,响应速度得到了极大的提升。设置DirectSound的工作模式为最高级别,一般最小延迟可到60毫秒左右。

WDM

WDM是Windows Driver Module的缩写,拥有低延迟、支持多个音频流等特性。这是Windows 98 SE/ME/2000的一个新特征,WDM驱动推出后,人们发现以前不支持多音频流的声卡都能播放多个音频流了。WDM也可以算是一套API,通讯的对象是驱动程序而不是普通的应用程序,只要驱动支持WDM,会增加不少功能,例如通用的软波表等。在输入输出方面,WDM比MultiMedia Extensions和DirectSound都要好点,现在几乎所有没有被淘汰的声卡都支持WDM。WDM可以让声卡的延时大大降低,某些时候甚至可以媲美ASIO,在一些专业的音频编辑创作软件中,已经对WDM提供了支持。

MME延迟高,而Direct Sound并非为专业音频设计,WDM的出现很好地弥补了这些缺点。WDM直接和音频芯片的驱动程序交流,减少了大量中间环节,把延迟降低到一个新的层次,目前不少专业音频软件都提供了WDM接口。

所谓WDM技术就是应用程序直接调用底层系统服务。总流程也是先接受一个缓冲区的数据,然后输出。在WinXP下,音频WDM也就是常说的Kernel Streaming(内核音频流)。此方案的优势在于可将延迟做到极低的状态,一般最小延迟可以到1毫秒~10毫秒,且在一定情况下可以使用非分页内存、直接硬件IRP和RT,独占声卡的所有资源。

Kernel Streaming(KS)

Kernel Streaming中文意思就是内核流,这是一种直接访问底层数据的方式,它可以绕开系统的混音器(Windows kernel mixer),直接与声卡通讯,这使得输出效率得到提高,输出延时降低。Kernel Streaming 不经过Kmixer,直接对音频数据进行内核模式(kernel-mode)处理,这样一来,我们就可以听到原汁原味的声音。

但Kernel Streaming也有其局限性,首先使用这个API会直接霸占音频硬件,你听歌的时候就没法听到QQ响;其次这个API没有音频输入功能,也没法使用麦克风。

需要注意的是由于Vista和Win7开始弃用了kmixer和依赖dma的audio IO,所以Kernel streaming不适用于Vista和Win7。

UAA(WASAPI)

UAA是最新的Windows音频架构,在Vista推出之时面世。UAA全称为Universal Audio Architecture,即通用音频架构,其中用于管理音频对话的API为WASAPI(Windows Audio Session API)。WASAPI可以对每组音频对话单独处理,这显得意义重大。

举个例子,使用WASAPI的时候,如果正在用44.1kHz的采样率播放音乐,但此时音频采样率为48kHz的QQ又响了,就不必以混响解决,不会产生采样率转换(SRC)劣化音质的情况。事实上,WASAPI这个音频API是很多音乐发烧友的标配。

WASAPI (Windows Audio Session API) 是从Windows Vista开始加入的UAA(Universal Audio Architecture)音频架构所属的API。WASAPI允许传输未经修改的比特流到音频设备,从而避开SRC(Sample Rate Conversion,取样率转换器)的干扰。对于Windows XP来说,与WASAPI类似的通道就是上面所说的Kernel streaming,WASAPI只能使用在Vista和Win7以上的系统。

微软宣称,vista/7 已经开始弃用了kmixer 和依赖dma 的audio IO,而开发了他们所说的WaveRT (Wave RealTime),他们的WASAPI、MMCSS 等就是使用WaveRT 做核心,而WaveRT 都有一个属于自己的mixer,但只要开动独占摸式就可以bypass 这个mixer,mute 掉所有其他程序的声音,MMCSS 是让你提高audio 出入IO 到最高时脉优先权,微软想做的其实就是使用实时clock timer控制audio 流,而不经dma,直接和UAA audio devices hareware 沟通,甚至让sound card or audio interface 的hareware clock 直接来控制audio data,这样的作用就是想做到和ASIO 很相近,就算是WASAPI 共享模式,都已经没有SRC 了,而是在控制台中可以自由让你设定共享混音后的共同目的sampling rate, bit size 及channels,所以的可以保留原来的44100Hz 讯号,不会再被SRC,而且现在所有intel motherboard 或intel chips 都已经有了HPET (High Precision Event Timer),可以令video 和audio 的处理更实时精确处理高sampling rates,低bus latency,让每秒钟内可以回应资料流事件的次数大幅增加,但不知AMD 的有没有。

ASIO

ASIO的全称是“Audio Stream Input Output”,是由德国Steinberg公司所提出的一种音频技术规范,为音频API标准之一。ASIO的主要特点是低延迟和多轨多通道传输。ASIO完全摆脱了Windows操作系统对硬件的集中控制,它能实现在音频处理软件与硬件之间进行多通道传输的同时,将系统对音频流的响应时间降至最短。

Windows自有的MME驱动程式其延迟时间为200~500毫秒,DirectSound为50~100毫秒,Mac OS的Sound Manager则为20~50毫秒,使用ASIO的情况下,缓冲器依照设定的不同可至10毫秒以下,也有因环境较佳而到1毫秒以下的情况产生。 因此,在录音作业与音乐制作上,可达到实时处理的效果。

低延迟对声音录制和后期制作有着重大的意义,但是在声音回放上的效果却有争议。有的发烧友认为,ASIO的低延迟可以极大程度地减少音频Jitter(抖动),从而提高音质;但有另一种说法称ASIO对软硬件的环境要求都比较苛刻,如果音频驱动编写水平一般,很容易产生爆音、声音生冷等问题。

EAX

EAX 即 Environmental Audio Extensions,环境音效拓展集,它算不上是一套独立的API,它是以DirectSound 3D为基础,构筑的一套3D API,它的开发者就是大名鼎鼎的Creative。Creative推出EAX是为了和A3D竞争,并最终获得市场的胜利,创新收购Aureal后,A3D的一些先进算法被导入到EAX当中。

OpenAL

OpenAL是一个免费的跨平台的音频3D API,由Loki Software开发,但Loki Software没多久就倒闭了,自由软件社区接手进一步的开发,现在的实际主导者就是Creative。由于Vista放弃对DirectSound 3D硬件加速的支持,Creative也陷入尴尬境地,要让EAX继续发展下去,只能加强对OpenAL的支持。Creative希望在OpenAL的基础上重构EAX,要实现这一步并不难,但真正要广泛应用,还需游戏厂商的大力支持。时至今日,OpenAL的被支持力度仍旧比不上当年的DirectSound 3D,Creative要重现辉煌,尚需时日。但如果努力获得成功,可能获得极大的收益,因为OpenAL是唯一一个跨平台的API。
  支持👍       中立👌       反对👎  

=================================

- - - 赞助打赏付费,或留言寻求帮助 - - -


全网搜索   一网打尽
搜索
侃侃电脑音乐和音乐创作【转】 83 网友用大纸盒制作的隔音消音板 429 Cakewalk的独奏按钮标记是什么?S和M是什么意思?有什么区别? 187 常用的打谱和排版软件 170 国外大神们各种DIY的消音隔音器材 86 R-MIX插件的作用是什么?是一个去人声和主奏的功能插件 183 ASIO驱动的优越性是什么?低延迟和缓冲区大小的关系 3263 一些吉他上你可能不太知道的冷知识!【转】 67 IP地址127.0.0.1是指什么?他到底有什么用呢? 407 百度云盘下载速度为什么这么慢?说说提升速度的方法 9 手机上简单好用的吉他APP推荐,调音器、看谱、虚拟吉他【顶】 765 使用Delay效果器制造立体声的方法 79 Stereo的意思是什么?Mono的意思是什么? 609 WIN10桌面右下角任务栏上的小喇叭图标不见了怎么办?如何调声音? 98 WIN10系统里修改MP3文件信息的简单方法 108 SONAR X3和插件音源安装时候的注意事项 61 万能和弦是指的是什么和弦?就是1645 116 说说吉他手的电脑桌必须摆放在墙角 73 如何使用WEB APP?如何把网站放在手机主屏幕主界面上?【顶】 863 计算机音乐是谁发明的?Max Mathews,原来又是美国人干的 335 音乐制作工作站软件Sonar的前身是什么? 138 数学里的分数是什么?是测量,音乐和数学千丝万缕的联系 30 常识问题:空气中100HZ的声波波长是多少? 1204 使用百度AI文心一言,问了一些音乐相关的问题 40 学会SONAR X3要多长时间? 59 使用浏览器把网页另存为图片的方式,来打印完整网页内容的方法 225 常识问题:声学里的掩蔽效应是什么意思? 281 常识问题:二进制数100转换成十进制是多少? 1128 最简单好用的节奏鼓机DrumEditor,支持鼓点编辑 1154 常识问题:芯片里的微小电路是如何做进去的?说说芯片音乐 97 人声处理插件都可以做哪些事情?可以消除削波失真吗? 199 “共振峰”到底是什么东西?有什么作用? 251 Denuvo加密是什么意思?一种软件加密技术 119 Sonar快速转换MIDI轨为音频轨,真的好简单 219 打印网页内容的有效方法,这些方法你不一定知道 241 使用拼音输入法,如何输入生僻字和不认识的字? 178 SONAR钢琴卷帘视图点击某个琴键就可以完成什么操作? 148 关于Muse在Win8下无法正确运行的问题 63 消除人声或主奏的方法,使用R-Mix 90 运行guitar pro 6出现错误如何解决? 100 最常用的效果器:噪音门(Noise Gate),详细的知识【转】 21 可以有效防反射声的消音屏,看着挺好看 79 超简音乐教程《架子鼓入门》目录 11 ASCII是指什么东西?原来这是历史悠久的东西了 157 Cakewalk为什么声卡老是不好用?ASIO声卡为什么不好用呢? 340 国际标准音La的频率是多少?有多少种音律调律法?很多的 555 用Cakewalk Sonar播放MIDI,操作简单效果好 133 好用的人声处理插件CLA Vocals,WAVES插件~ 997 鸡蛋盒子录音棚DIY,造假超级低廉【转】 171 音乐制作人必备的6个母带处理技巧【转】 9 响度分贝数究竟是什么?其实是两个数量的比值然后取对数 440 高人艾挖回答电脑录音音乐制作的问题【转】 42 我应该练习什么?【转】 40 侃侃电脑音乐和音乐创作【转】 83 怎样屏蔽板载声卡?怎样设置默认输出声卡? 71 关于齿音的一些知识【转】 206 混音挂载和使用效果器的一些体会 72 人声效果的精细处理详解【转】 58 关于Muse在Win8下无法正确运行的问题 63 编曲容易犯的十点错误【转】 120 Guitar pro 5修改指法的方法 91 你真的想成为一名职业音乐人吗?【转】 51 屌丝录制一张专辑到底要花多少钱【转】 73 Guitar pro 导入导出MIDI和音频的方法 809 吉他大师Derek Trucks,滑棒吉他很好听~ 31 SONAR X3和插件音源安装时候的注意事项 61 改善音乐播放音量对比(响度均衡)的设置方法 706 一些吉他上你可能不太知道的冷知识!【转】 67 如何利用声卡内录功能录音?为什么我的声卡不支持呢? 232 鸡蛋盒子录音棚DIY,造假超级低廉【转】 171 国外牛人们DIY搭建的简易个人音乐工作室 105 可以有效防反射声的消音屏,看着挺好看 79 用鸡蛋盒子DIY的录音室,据说效果不错 163 可以移动的专业录音棚设备,非常适合DIY 75 网友用大纸盒制作的隔音消音板 429 录音爱好者们DIY的隔音消音箱,看起来很不错 212 好用的人声处理插件CLA Vocals,WAVES插件~ 997 业余歌手K歌或录音时的一些唱歌技巧 157 SONAR和CUBASE的各自优势【转】 101 安装音源和效果器插件出错的几个常见可能原因 114 消除廉价电脑音箱的可恶交流噪音 59 使用Delay效果器制造立体声的方法 79 用Cakewalk Sonar播放MIDI,操作简单效果好 133 消除人声或主奏的方法,使用R-Mix 90 Cakewalk Sonar音乐制作软件里制作风铃音效的方法 135 Kong Audio 空音音源,中国民族乐器的专业级音源 412 Sonar快速转换MIDI轨为音频轨,真的好简单 219 Sonar如何删除标记?按左键再按删除键 118 非常好用的吉他音源RealLPC,自动节奏功能强大 265 修音插件Melodyne的使用方法,添加了视频教程内容 395 KONTAKT音源加载器使用方法,Kontakt初级使用教程 267 用V-Vocal制作颤音,功能强大的插件 87 “听湿录干”是什么领域的技术术语?有什么用呢? 252 DIY的用来隔音的盒子 128 国外大神们各种DIY的消音隔音器材 86 复制文件很慢的原因是什么?关闭杀软即可大幅提升文件拷贝速度 87 SONAR X3如何添加已安装的插件? 79 学会SONAR X3要多长时间? 59 SONAR如何用CAL制作吉他扫弦效果? 64 发烧份子狂热追求的迷宫音箱 79 更多内容 ... ...
声明:此列表信息搜集自网络,按照数据库信息自动排版,无任何具体排名先后含义;内容可能含有严重错误,请勿用于学术研究。
转到手机版   继续浏览

导航页面  |  吉他入门  |  吉他谱  |  吉他教程  |  吉他主题  |  常州学吉他  |  常州音乐制作  |  百度云盘  |  云服域名
声明: 本站原站名“吉他吧、吉他八号”,现站名“吉他福”。本站完全由站长个人创建,不隶属于任何组织和机构。 本站部分内容引用自网络,版权归原作者所有,如有侵权请来信告知,本站将立即删除。 本站内容不保证信息准确性和完整性,如您用于学术研究请酌情采纳。
© 吉他福 Jita8.Com 电邮 Jita8@Outlook.Com 站长 老贾29号