开源的录音编辑软件——Audacity
本文最近更新于 2019 年 04 月 14 日 ,日本
Audacity 是一个免费的跨平台(包括 Linux、Windows、Mac OS X)音频编辑器。你可以使用它来录音,播放,输入输出 WAB、AIFF、Ogg Vorbis 和 MP3 文件等等。你可以剪切,复制和粘贴,混合音轨和给录音添加效果。它还有一个内置的封装编辑器,一个可用户自定义的声谱模版和实现音频分析功能的频率分析窗口。自带的声音效果包括回声,更改节拍,减少噪音,它还支持 VST 和 LADSPA 插件效果。
官方网站:www.audacityteam.org
运行的系统
- 能够在 Linux,Windows(98 和更高的版本),Mac OS X(老的版本在 Mac OS 9 上运行)顺利的运行,这要感谢 wxWidgets。
- 1.2.x 版本有 16 种语言的可用版本,其他版本也至少有两种翻译版本。
- Audacity 使用 C++ 编写。一些子库(其中一些是由同样的开发者编写)是用 C 写的。
- Audacity 是 GPL 许可软件。一些子库使用了 LGPL,BSD 或是其他 GPL 兼容的许可。
作者访谈
以下内容源自网络。
为什么开始写这个软件,是如何开始的?
Dominic: 我在 1999 年开始写 Audacity,那时我还是卡内基梅隆大学计算机系的一个学生。当我试图实现音调转换(pitch transcription)算法时,我开始开发自己的工具。那时在 Linux 上运行的音频编辑器没有我特别喜欢的,而且我无法提供好的在 Mac 上运行的编辑器(Linux 和 Mac 是两个我喜欢的平台),所以我想把我的工具做成完整的编译器会很有趣。我的导师 Roger Dannenberg 很支持我的项目,鼓励我把这个编辑器做成一个研究项目。
我提出了一个有趣的能够快速执行编辑操作的数据结构,以此为题写了一篇论文。到了那一年的年末,我已经从这个音频编辑器中得到了很多乐趣,在我正式的研究之外我也在这个项目上花费越来越多的时间。最后我提出了 Audacity 这个项目,并把它发布到 sf.net 上。
Josh: 我是在 2000 年圣诞节前获得这个项目相关的开发权限的。我已经使用 Linux 系统和开源软件好几年了,但我的技术才刚刚达到可以做一个实际项目的水平。最初看到 Audacity 时,我只是作为一个使用者对它感兴趣,因为那时它还没有一个很好的开发音频编辑器的整体规划。我给 Dominic 发邮件,说我志愿为 Audacity 做一个 Debian 包,他问我是否有兴趣帮忙参与做整个开发。我为这个想法感到很兴奋,而且花了许多圣诞节的假期时间完成了我对这个项目作出的最初两个贡献,一个 Ogg Vorbis(一种音频压缩格式)输入接口和一个参数选择对话框。
有哪些特定的用户?
Dominic: 从事对数字音频采样工作的每一个人都是它的用户。我的目标,首先是让 Audacity 能够完成普通用户最需要的功能 — 例如把 LP 或磁带转换成 CD;或是记录并混频他们的 garage band。第二,对那些需要更高质量音频编辑工作的人,Audacity 或许不能够满足他们的所有要求,但 Audacity 是免费的,所以它只要能够在一方面做得比其他工具出色,那支持它就是值得的。最后,我希望 Audacity 将会满足越来越多人的需求。
你认为多少人在用你的软件?
Dominic: 引用保守的统计,至少有 650 人以上在 Audacity 用户的邮件列表里,至少有 11500 人以上在我们的公告列表里。引用粗略的统计,sf.net 站点显示 Audacity 有两百四十万以上的下载量(不过这个下载量包括相同的用户下在不同的 Audacity 版本)。基于这些统计,实际的用户量大概接近十万。
能不能举几个典型的例子说明人们如何使用你们的软件?
Dominic:
- 最令人感动的:一个人告诉我,他用 Audacity 来记录他父亲去世前几天他们俩人最后的会面。
- 最有创意的:阿拉斯加的一个老师,让他所教的高中生用 Audacity 记录和编辑他们与个人崇拜者的会面。
- 最礼貌的惩戒:一个父亲说,他使用 Audacity 把脏话编辑成流行歌曲让孩子们听,他觉得这种惩戒方式感觉舒服多了。
- 最不同寻常的:一个人使用 Audacity 倒播著名的录音,从中寻找潜在的信息。
James: 用作焰火排序(Firework display sequencing)。那些不够接近音频文件底层的编辑软件难于实现这个功能。
Audacity 还可以用来制作个人的催眠录音带。Audacity 能够提供很多对录音的编辑功能,更改节拍、调整声音和音乐轨道的同步性、“marking out”、放置隐藏的控制。
是什么让你们意识到项目变得越来越成功?
Josh: 2002 年的 7 月是一个转折点,那时一切似乎突然发生:一周的时间里,Audacity 下载量突破了一百万,Washington Post 评论 1.0 版本,TechTV 也提到了我们。我看到 Audacity 如此广泛的被认同很惊讶也很高兴,我知道 Audacity 真正的开始流行起来了。
最意外的惊喜是什么?
Dominic: 让我感到最幸福的惊喜是收到 Eric S.Raymond 赞扬 Audacity 的邮件。
Josh: 发现 Audacity 在 eBay.com 以另外的名称被出售(Finding Audacity on sale at eBay.com under a different name)。
曾遇到过什么大的挑战?
Dominic: 技术支持。每天我们都会被问到很多问题,邮件列表中的人大多没有时间和知识来回答这些问题。当我有时间时,我会尽可能的回答这些问题,并且我非常感激那些回答着成千上万问题的其他开发者和用户。
Josh: 对我来说,最大的挑战是协调我的开发工作和改善生活的需要,以前是协调开发与学习,现在我毕业了,是协调开发与工作。我是一个更关注错误和局限性的人,我在考虑“真正的问题是我们的设计并没有平滑的处理问题,这个系统需要重新设计”。然而,实际上我根本没时间重新设计任何东西(但我一直在努力 — 看看我的进展吧,我试图要重写很多 Audacity 的后端)。
James: Windows 98 下运行是出现了一个工具提示的错误(或者说我认为它是一个这样的错误),成了一个很头疼的问题。似乎如果有过多的工具提示栏 Windows 98 就会出错,但直到现在我还是不知道确切为什么会出错。
为什么你认为大家已经接受了你的项目?
Dominic: 我认为很重要的一个因素是它是跨平台的。我认为这比大多数人最初认为的要难得多 — 你能想到多少多媒体应用程序能够很好的在 Mac OS X, Windows 和 Linux 系统下运行呢?我能想到的仅有的几个是 Mozilla/Netscape 和 RealPlayer(十分感谢 wxWidgets 和 PortAudio,这是 Audacity 能够很好在这么多平台上运行所依赖的主要的两个库。)总之,Audacity 的跨平台性,使得人们可以随意的把 Audacity 推荐给他们认识的任何一个人,更不用说使用相同平台的人了。除此之外,Audacity 易于使用的界面,得体的文档,可爱的邮件列表都对他的流行起了很大帮助。
Josh: Audacity 的被认可与其它广泛被认可的项目有着同样的理由,我认为是:它用一个人们能够操作的界面,完成了人们需要做的事情。跨平台性是它广泛被需求的另一个因素。当然,除了一些小问题,帮助列表的响应使得人们主要的问题都能够得到成功的处理。
James: 它仿佛是音频的瑞士军刀。它还能防止项目膨胀,而不是像落入沼泽一样陷进去。
你认为你的项目将会如何发展?
Josh: 我、Dominic 正在和任何愿意加入的人一起重写许多 Audacity 的音频后端。我们把这个新的引擎起名叫 Mezzo。受益的用户会了解到,这是我们首次冒险进入实时领域。首先,你将能够使用插件而不需首先申请硬盘的响应。Mezzo 也会为更多多轨道功能铺路。以开发者的角度来看,Mezzo 将会完全的脱离 GUI,可能用不同的 GUI 前端使用部分引擎或是根本不用 GUI。
James: Audacity 的 GUI 和它所驱动的波形操作代码不会再紧密的绑定在一起了 — 这是一个改良的设计也是在面向 Audacity 列表一般的制作需求,从外部脚本驱动 Audacity 的能力。
当底层的代码变得越来越通用,Audacity 的 GUI 代码可以开始在别的项目中被使用了(例如 Audacity 的 history/do/undo 机制)。重用代码的一个途径是,把 Audacity 中的一些改进提取出来并应用于(回传)wxWidgets — 一个通用的 GUI 库,Audacity 基于其上构建。轮流重用 GUI 代码会增加对 GUI 代码有贡献的开发者的人数。所以 — 可以设想一个 GUI 快速创新的时期,一个带有插件构造的更像 Web 的、可配置性更强的 GUI,更多新的 GUI 组成部分,像环绕声控制器,diff 显示器(对同一声音不同采样的图形比较),语音图表(元音共振分析)。
对你的项目有什么发展计划?
Dominic: 我正要向你介绍我们的“功能需求专栏”,因为那里有太多的想法,我都注意不过来了。
James:
- 一个允许文本和声音前后依次被编辑的功能,尤其是通过操作相应的文本来简化对长声音文件的操作。
- 一个大量短小声音碎片的组织器。
最令你自豪的是什么?
Dominic: 令我最自豪的功能却是 99% 的用户并不在意的功能。我为“Import Raw”付出了大量的努力 — Audacity 能够打开任何未压缩的音频文件,并能够正确的判断它的格式,对文件格式的判断 95% 都是通过分析文件内的数据,并指出哪种译码方法成功把文件转换为音频信号的可能性最大。一些相应对话框的界面也让我很得意,像减少噪声、音调调节和节拍调节的对话框。他们使很难的概念简单化,简单的足以使初级用户感觉不到它的存在,但同时使功能强大,强大的足以使高级用户能用它做很多事情。
如果你能对你的项目做些改变,你会改变什么?
Dominic: 这似乎很愚蠢,但我做出的最错误的设计决定就是把存储器中的轨迹列表由动态数组改成了链表。想要纠正它需要重写上千行的代码,我现在还没有耐心去做这件事。
Josh: 更改一些我们变换文件格式的遗留问题。一个 Audacity 项目其实就是一个小数据文件的目录和一个描述它们如何恰当组合起来的文件。Audacity 1.0 是一个无结构的命令行文本文件,生成它高度依赖于执行。我们在 1.2 版中开始使用 XML 文件,但它仅仅相当于一个 Audacity 的内部对象模版的堆存处,所以它会随着内部的变化随时变化 — 无论是增加使声音线性减弱的功能这种小的变动,还是把后端更改为 Mezzo 这种大的改变。
James: 我希望和所有其它的开发者都居住在同一个城市,这样我们可以很容易见面。我还希望能有一个慈善家捐助很多钱给这个项目来资助未来的开发。
你如何协调这个项目?
Dominic: 我渐渐明白了分配任务不管用。当人们做他喜欢做的事情并自愿完成工作时,工作才能得到最好的收效。有时候我会请一些志愿者做事,但只有一半的人会积极的相应。
你们全职做这个项目,还是同时有其他工作?
Dominic: 我在 Jet Propulsion Laboratory 全职工作,做机器学习研究。
Josh: 我有一份全职的工作,做包括程序设计在内的事,有时甚至没时间回家,要做的程序也很多。我强烈的渴望看到 Audacity 像我预期的那样运行。有一个技巧我已经用了很多次了,那就是当我试图编写倒播音乐功能时,我就找一段我很喜欢的音乐作为素材。这样,听音乐既是在工作又是在享受。当功能最后实现时,我一边休息一边让音乐播放,那感觉就如同享受着香榭里舍香水的芬芳。
如果兼职做这个项目,每星期你在它上面花多少时间?
Dominic: 我想可能平均每星期 10-15 小时,但实际可能更多。
Josh: 我大概 5-15 小时每星期。
James: 我做全职工作时,我隐藏在邮件列表中而且没对开发做什么贡献。在两份工作中间的间隙时,我每星期在这个项目上花 40 小时以上的时间。
你们喜欢什么样的开发环境?
Dominic: 我已经有了一台 PC 电脑和 Mac 操作系统。我最近把一切都升级了,于是我拥有双核 2.0GHz 处理器和 Power Mac G5 操作系统,带有 2.8GHz 奔腾 4 处理器的一般品牌的 PC 电脑。我主要的音频设备是 M-Audio USB Quattro。我曾经在三个平台上开发 Audacity,但最近我不再继续 Windows 平台上的开发了,并把这个工作转交给经常使用 Windows 平台的开发者了。
Josh: 我本来专注于 Linux,直到我在去年圣诞节得到了一个苹果 PowerBook 电脑。现在我再也离不开我的 PowerBook 了,我还使用相同的工具(gcc, gdb 等),但是在 Mac OS X 上运行的。我一次次的登陆到 Debian Linux 去确保所有的东西已经被移植过去。我还留着老的 x86,但我已经不再用它了。
James: 好的电脑(3GHz);一般的网络连接(56K 猫);SUSE Linux, Windows 98, Windows 2000, Windows XP 操作系统;99% 的开发用 Microsoft Visual C 完成。
里程碑:
- 2000-05-28 Audacity 0.8 在 SourceForge.net 上发布
- 2002-06-11 Audacity 1.0 (完整版) and 1.1 (测试版) 发布
- 2004-08-04 Audacity 1.2.0-pre1 发布
- 2004-03-03 Audacity 1.2.0 发布
- 2004-05-08 Audacity 1.2.1 发布
我希望我们能够在 1.2.x 系列上至少再发布两个版本来修补漏洞和附加新的功能。我们也在为 1.3 系列所有给人惊喜的新东西而忙碌,大概会在一年以后发布。
其他人能帮你们做些什么呢?
Dominic: 如果你是一个有经验的 Audacity 用户而且你有一些时间,你可以加入 audacity-users 和 audacity-help 邮件列表,帮我们回答问题。
我是否应该要求获得一些报酬呢?一些 Audacity 的开发者想要从工作中获得报酬。如果你有一个能从 Audacity 自定义版本中获利的商业项目,或是你认识可能以某种方式赞助我们的人,请和我们联系。
还有一些其它的方式可以帮助我们。我们永远欢迎新的开发者,而且我认为我们可能尤其需要更多对 GUI 程序设计感兴趣的人。我们还欢迎翻译人员,文档编写人员,测试人员或是以其他任何你能帮助我们的方式。
最近更新: