基于PortAudio+LAME3实现的ASIO多通道音频录制(mp3、WAV )

今天给大家分享一个之前做的ASIO多通道音频录音机程序,可以实时对多达64通道的ASIO音频进行录制MP3或WAV。

好了,话不多说,先给大家看东西。蓝雨qinglanyu_jun@foxmail.com原创,禁止转载。
recorder

整个录音软件采用Qt编写,使用了开源库PortAudio和开源MP3编码器LAME的v3.100版本。

ASIO

ASIO是专业声卡驱动模式的一种简称。由 Steinberg 公司开发。应用很广泛的个人电脑声卡专业驱动。它的全称是Audio Stream Input Output,直接翻译过来就是音频流输入输出接口的意思。通常这是专业声卡或高档音频工作站才会具备的性能。采用ASIO技术可以减少系统对音频流信号的延迟,增强声卡硬件的处理能力。同样一块声卡,假设使用MME驱动时的延迟时间为750毫秒,那么当换成ASIO驱动后延迟量就有可能会降低到10毫秒以下。——百度百科

ASIO是由德国Steinberg公司所提出的音频流输入输出应用程序,为音频API标准之一。现今贩售的高级声卡多具备此一规格,亦有支持Windows和Mac OS的驱动,已成为业界大多采用的标准。与Mac OS X的Core Audio是同等级的技术。另外Linux方面,也具备低延迟内核。Windows和Mac OS皆拥有支持ASIO的驱动程序。ASIO可实现低延迟、高同步、高吞吐率。其开发目的是为了改善过去OS所搭载的驱动无法进行多通道传输,而提出的改善方案。ASIO可依照机器所能处理的情况下进行多通道、采样率、比特资料处理。——维基百科

我们一般的PC机是不具备ASIO声卡以及ASIO声卡驱动的。不用担心,Audinate公司(全球领先的专业数字网络音频技术供应商)旗下的Dante平台为我们提供了一站式的软件服务。让我们用普通PC机也可以体验到专业级别的视听感受。这里简单用两段话介绍一下Dante是什么。

场景

从小型的礼拜堂和会议室,到大型的摇滚巡演和体育场馆,音频系统都需要麦克风、混音器、处理器、放大器和扬声器之间的连接。这通常意味着需要使用很长的专用模拟电缆,这些模拟电缆既笨重,又难以操作,而且一次只能向一个设备发送一种信号。更换电缆既费力又费钱,而且整条线上会始终伴有噪音和干扰声。再加上视频的话,会更加麻烦,甚至会需要更多种类的专用电缆来进行安装、管理和维护。

解决方案

Dante 用计算机网络替代了 所有 这些连接,轻松地通过纤细的以太网电缆以完美的数字保真度发送 视频或 数百路音频通道。 所有的连接现在均可使用软件管理,从而使路由快速、可读、可靠。 由于所有设备共享同一网络,因此可在 任何 设备之间发送信号,无论它们位于站点的哪个位置,都不需要改变线路。 Dante系统很容易扩展,就像在网络中添加打印机一样。 只需将其它设备连接到任何可用的网络插口,即可使用。

Dante 是更高级的音频视频系统,可将以往所有的连接类型融为一体。Dante 既提供了极为优越的性能,又提高了这些系统的使用性和扩展性,降低了部署成本。

以上是Audinate官网对Dante的介绍。而今天我们要分享的就是一个ASIO音频设备的录音软件,可以同时对多达64路通道的ASIO音频进行录制并编码成MP3或WAV格式。

Dante Virtual Sound

首先,为了能接收音频数据,我们需要先安装Dante Virtual Sound虚拟声卡。直接从官网下载安装即可。该软件提供14天免费试用。虚拟声卡装好后,长这个样子:
DVS
可以设置音频接口、通道数、延迟、网卡接口(音频流数据来自以太网上的其他ASIO设备),也可以在选项里面设备ASIO的相关参数。点击Start启动虚拟声卡后,以太网上的Dante管理器就可以发现这台设备,并进行音频的输入和输出。其实我们熟知的QQ音乐就可以选择输出设备到ASIO虚拟声卡。将QQ音乐播放的音频通过网络输出到其他ASIO设备。
QQMusic
基本上装上Dante Virtual Sound虚拟声卡后,就可以从虚拟声卡接收数据了。也就具备了从虚拟声卡设备的音频通道进行录音的可能。多台设备使用虚拟声卡还需要Audinate公司的另外两款产品Dante ViaDante Controller。基本下载就可使用。后期需付费,还不便宜。

PortAudio

PortAudio,业界使用极为广泛的一个免费、跨平台(Windows/Macintosh OS X/Unix)、开源的音频IO库。使用PortAudio可以很方便的进行音频相关的编程,因为其API极其简单又功能丰富。支持各种操作系统的原生音频APIs:
PortAudioAPIs
PortAudio基本其API都在portaudio.h头文件当中,使用起来也极其简单,官方文档上还提供了丰富的Demo可供参考。官方Tutorial的内容基本就涵盖了使用的几个方面:

  • Writing a Callback Function
  • Initializing PortAudio
  • Opening a Stream Using Defaults
  • Starting, Stopping and Aborting a Stream
  • Closing a Stream and Terminating PortAudio
  • Utility Functions
  • Enumerating and Querying PortAudio Devices
  • Blocking Read/Write Functions

LAME3

LAME,一款MP3高品质编码器程序,目前最好的MP3编码引擎。LAME编码出来的MP3音色纯厚、空间宽广、低音清晰、细节表现良好,它独创的心理音响模型技术保证了CD音频还原的真实性,配合VBR和ABR参数,音质几乎可以媲美CD音频,但文件体积却非常小。

录音软件

有了以上基础后,我们简单看一下录音软件的流程图:
flow
其中编码器线程循环从环形队列读取PCM格式的音频数据并送入选择的编码器(MP3/WAV编码器)。编码器将编码输出的音频文件写入本地文件。

看一下直观的录音效果图,由于机器上安装的DVS license过期了,Dante Via也过期了,这里就只看一个使用MME录音麦克风的效果吧。
录音动图
录音生成的mp3文件按通道号和时间进行命名:
录音文件
最终软件以¥8000的价格交付给了某企业。运行于其服务器上,可以同时对网络中的多路ASIO音频进行录制。且在没有信号的声道上可以自动暂停录音。

大家有任何疑问欢迎与我交流,我的邮箱是qinglanyu_jun@foxmail.com,也可以关注我的微信公众号:私人定制coder
私人定制coder

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轻蓝雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值