mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-02-03 23:40:14 +08:00
PUB:20160616 Part 1 - Scientific Audio Processing How to read and write Audio files with Octave 4.0.0 on Ubuntu
@vim-kakali
This commit is contained in:
parent
562ba5f975
commit
f92f6e0684
@ -1,14 +1,13 @@
|
||||
|
||||
科学音频处理--怎样在 Ubuntu 上使用 Octave 对音频文件进行读写操作
|
||||
科学音频处理(一):怎样使用 Octave 对音频文件进行读写操作
|
||||
================
|
||||
|
||||
Octave 是一个类似于 Linux 上的 Matlab 的软件,它有数量众多的函数和命令进行声音采集,记录,回放以及娱乐应用程序,研究,医学方面的音频信号的处理,这也包括任何其他的科学领域。在本教程中,我们会在 Ubuntu 上使用 Octave 的 4.0.0 版本读取音频文件,然后通过生成信号并且播放来模仿在各种情况下对音频信号的使用。
|
||||
Octave 是一个类似于 Linux 上的 Matlab 的软件,它拥有数量众多的函数和命令,支持声音采集、记录、回放以及音频信号的数字化处理,用于娱乐应用、研究、医学以及其它科学领域。在本教程中,我们会在 Ubuntu 上使用 Octave 的 4.0.0 版本读取音频文件,然后通过生成信号并且播放来模仿在各种情况下对音频信号的使用。
|
||||
|
||||
本教程中关注的不是安装和学习使用已有的音频处理软件,而是从设计和音频工程的角度理解它是如何工作的。
|
||||
本教程中关注的不是安装和学习使用安装好的音频处理软件,而是从设计和音频工程的角度理解它是如何工作的。
|
||||
|
||||
### 环境准备
|
||||
|
||||
首先是安装 octave,在 Ubuntu 终端运行下面的命令添加 Octave PPA 然后安装 Octave 。
|
||||
首先是安装 octave,在 Ubuntu 终端运行下面的命令添加 Octave PPA,然后安装 Octave 。
|
||||
|
||||
```
|
||||
sudo apt-add-repository ppa:octave/stable
|
||||
@ -16,7 +15,6 @@ sudo apt-get update
|
||||
sudo apt-get install octave
|
||||
```
|
||||
|
||||
|
||||
### 步骤1:打开 Octave
|
||||
|
||||
在这一步中我们单击软件图标打开 Octave,可以通过单击下拉式按钮选择工作路径。
|
||||
@ -25,8 +23,8 @@ sudo apt-get install octave
|
||||
|
||||
### 步骤2:音频信息
|
||||
|
||||
使用`audioinfo`命令查看要处理的音频文件的相关信息。
|
||||
|
||||
使用“audioinfo”命令查看要处理的音频文件的相关信息。
|
||||
```
|
||||
>> info = audioinfo ('testing.ogg')
|
||||
```
|
||||
@ -36,8 +34,8 @@ sudo apt-get install octave
|
||||
|
||||
### 步骤3:读取音频文件
|
||||
|
||||
在本教程中我会使用 ogg 文件来读取这种文件的属性,比如采样、音频类型(stereo 和 mono)、信道数量等。必须声明的一点是教程中使用的所有的命令都是在 Octave 终端窗口中执行的。首先,我们必须要把这个 ogg 文件赋给一个变量。注意:**文件必须在 Octave 的工作路径中。**
|
||||
|
||||
在本教程中我会使用 ogg 文件,因为读取这种文件的属性比较容易,比如采样,音频类型(stereo 和 mono),信道数量等。必须声明的一点是教程中使用的所有的命令都是在 Octave 终端窗口中执行的。首先,我们必须要把这个 ogg 文件赋给一个变量。注意:文件必须在 Octave 的工作路径中。
|
||||
```
|
||||
>> file='yourfile.ogg'
|
||||
```
|
||||
@ -46,8 +44,8 @@ sudo apt-get install octave
|
||||
>> [M, fs] = audioread(file)
|
||||
```
|
||||
|
||||
|
||||
这里的 M 是一个一列或两列的矩阵,取决于信道的数量,fs 是采样率。
|
||||
|
||||
![](https://www.howtoforge.com/images/how-to-read-and-write-audio-files-with-octave-4-in-ubuntu/reading.png)
|
||||
|
||||
![](https://www.howtoforge.com/images/how-to-read-and-write-audio-files-with-octave-4-in-ubuntu/matrix.png)
|
||||
@ -73,21 +71,19 @@ samples 指定开始帧和结束帧,datatype 指定返回的数据类型。可
|
||||
>> [y, fs] = audioread (filename, samples)
|
||||
```
|
||||
|
||||
|
||||
数据类型:
|
||||
|
||||
```
|
||||
>> [y,Fs] = audioread(filename,'native')
|
||||
```
|
||||
|
||||
如果值是"native",那么它的数据类型就依数据在音频文件中的存储情况而定。
|
||||
如果值是“native”,那么它的数据类型就依数据在音频文件中的存储情况而定。
|
||||
|
||||
### 步骤4:音频文件的写操作
|
||||
|
||||
新建一个 ogg 文件:
|
||||
|
||||
|
||||
我们会创建一个带有余弦值的 ogg 文件。采样率是每秒 44100 次,这个文件最少进行 10 秒的采样。余弦信号的频率是 440 Hz。
|
||||
我们会从一个余弦值创建一个 ogg 文件。采样率是每秒 44100 次,这个文件最少进行 10 秒的采样。余弦信号的频率是 440 Hz。
|
||||
|
||||
```
|
||||
>> filename='cosine.ogg';
|
||||
@ -99,18 +95,17 @@ samples 指定开始帧和结束帧,datatype 指定返回的数据类型。可
|
||||
```
|
||||
|
||||
这就在工作路径中创建了一个 'cosine.ogg' 文件,这个文件中包含余弦信号。
|
||||
|
||||
![](https://www.howtoforge.com/images/how-to-read-and-write-audio-files-with-octave-4-in-ubuntu/cosinefile.png)
|
||||
|
||||
|
||||
播放这个 'cosine.ogg' 文件就会产生一个 440Hz 的 音调,这个音调正好是乐理中的 'A' 调。如果需要查看保存在文件中的值就必须使用 'audioread' 函数读取文件。在后续的教程中,我们会看到怎样在两个信道中读取一个音频文件。
|
||||
|
||||
|
||||
### 步骤5:播放音频文件
|
||||
|
||||
Octave 有一个默认的音频播放器,可以用这个音频播放器进行测试。使用下面的函数:
|
||||
|
||||
```
|
||||
>> [y,fs]=audioread('yourfile.ogg');
|
||||
>> [y,fs]=audioread('yourfile.ogg');
|
||||
>> player=audioplayer(y, fs, 8)
|
||||
|
||||
scalar structure containing the fields:
|
||||
@ -129,7 +124,7 @@ Octave 有一个默认的音频播放器,可以用这个音频播放器进行
|
||||
```
|
||||
|
||||
|
||||
在教程的后续,我们会进入音频处理的高级特性部分,可能会接触到一些科学和商业应用中的实例。
|
||||
在这个教程的续篇,我们会进入音频处理的高级特性部分,可能会接触到一些科学和商业应用中的实例。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
@ -137,7 +132,7 @@ via: https://www.howtoforge.com/tutorial/how-to-read-and-write-audio-files-with-
|
||||
|
||||
作者:[David Duarte][a]
|
||||
译者:[vim-kakali](https://github.com/vim-kakali)
|
||||
校对:[校对ID](https://github.com/校对ID)
|
||||
校对:[wxy](https://github.com/wxy)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
@ -1,68 +0,0 @@
|
||||
|
||||
我玩 Linux 那会儿你还不知道在哪呢
|
||||
=====================
|
||||
|
||||
![](https://opensource.com/sites/default/files/styles/image-full-size/public/images/life/OSDC_Penguin_Image_520x292_12324207_0714_mm_v1a.png?itok=WfAkwbFy)
|
||||
|
||||
在很久以前,世界上没有 Linux 系统。真的没有!之前也从未存在过。不像现在, Linux 系统随处可见。有各种风格的 Unix 系统,有苹果的操作系统,有微软的 Windows 操作系统。
|
||||
|
||||
随时 Windows 桌面的到来,改的东西很多,但是保留下来的东西的更多。尽管增加至20GB以上的存储,Windows 还是大体保持不变。(除了不能在DOS的提示下完成实际的工作)嘿,谁还记得 Gorilla.bas 那个出现在 DOS 系统里的炸香蕉的游戏吗?多么美好的时光啊!互联网永不会忘记,而且你可以在 Kongregate.com 这个网站玩Flash版本的这个游戏。
|
||||
|
||||
苹果系统也改变了,变得更加友好、安全、美观。你别想着打开这个密封的盒子,它强制规定了用户能使用的硬件接口。 1998年:没有软盘。 2012年:没有光驱。 12英寸的 MacBook 只有一个提供电源的USB Type-C 端口、蓝牙、无线网卡、外部存储、视频输出接口和其它的一些配件。如果你想每次想接入一个新的设备而不想使用其它的配件和软件,这真是太抓狂了。其它:头戴式耳机。这是个非独有的硬件接口在 Apple 的领域里注定保留下来。
|
||||
|
||||
还有其它的操作系统,比如: Amiga, BeOS, OS/2 以及无数的你能查到的操作系统。我支持的这些系统是因为现在都很容易查寻到,也没有理由不推荐它们。 Amiga、 BeOS 和 OS/2 这些系统都值得关注,因为它们有强大的功能,比如32位的多任务和高级图形处理能力。但是市场的影响击败了强大的系统性能,因此普通的 Apple 和 Windows 操作系统统治了市场的主导地位,而那些曾经的系统也逐渐销声匿迹了。
|
||||
|
||||
然后 Linux 系统出现了,世界也因此改变了。
|
||||
|
||||
### 第一款电脑
|
||||
|
||||
我曾经使用过的第一款电脑是 Apple IIc ,大概在 1994年左右,那个时候 Linux 系统刚出来 3年。这是我从一个朋友那里借来的,用起来各方面都还不错,但是很不方便。所以我自己花了将近 500美元买了一台二手的 Tandy牌子的电脑。这对于卖电脑的人来说是一件很伤心的事,因为新电脑要花费双倍的价钱。那个时候,电脑贬值的速度非常快。这个电脑看起来像是个怪物:一个英特尔 386SX 的 CPU, 4MB的内存,一个 107MB的硬盘, 14英寸的彩色 CRT 显示器,运行 MS-DOS 5和 Windows 3.1系统。
|
||||
|
||||
我曾无数次的拆开那个可怜的怪物,并且多次重新安装 Windows 和 DOS 系统。因为 Windows 桌面用的比较少,所以我的大部分工作都是在 DOS 下完成的。我喜欢玩血腥暴力的视频游戏,包括 Doom, Duke Nukem,Quake 和 Heretic。啊!那些美好的,让人心动的 8位图像。
|
||||
|
||||
那个时候硬件的发展一直落后于软件,因此我经常升级硬件。现在我们能买到满足我们需求的任何配置的电脑。我已经好多年都没有再更新我的任何电脑硬件了。
|
||||
|
||||
### 比特杂志
|
||||
|
||||
回到那些曾经辉煌的年代,电脑商店布满大街小巷,找到本地的一家网络服务提供商(ISP)也不用走遍整条街。ISP 那个时候真的非比寻常。他们都是讨人喜欢的一些友好的大公司,像美国电信公司和有线电视公司等。他们都非常友好,并且提供各种各样的像 BBS、文件下载、MUDs (多玩家在线游戏)等的额外服务。
|
||||
|
||||
我花了很多的时间在电脑商店购买配件,但是很多时候我一个女人家去那里会让店里的员工感到吃惊,我真的很无语了,这怎么就会让一些人看不惯了。我现成已经是一位58岁的老奶了,但是他们还是一样的看不惯我。我希望我这个让人讨厌的女人在我死之前能被他们所接受。
|
||||
|
||||
那些商店的书架上摆满了比特杂志。有关比特杂志的历史信息可以在互联网档案库中查到。比特杂志是当地一家免费的杂志,有很多关于计算机方面的优秀的文章和大量的广告。可惜当时的广告没有网络版,因此大家不能再看到那些很有价值的关于计算机方面的详细信息了。你知道现在的广告商们有多么的抓狂吗?他们埋怨那些排斥广告的人,致使他们不得不在科技新闻中植入一些隐藏的广告。他们应该学习一下过去的广告模式,那时候的广告里有很多有价值的信息,大家都喜欢阅读。我从比特杂志和其它的电脑杂志的广告中学到了所有关于计算机硬件的知识。电脑购买者杂志更是非常好的学习资料,其中有上百页的广告和很多高质量的文章。
|
||||
|
||||
|
||||
![](https://opensource.com/sites/default/files/resize/march2002-300x387.jpg)
|
||||
|
||||
比特杂志的出版者 Paul Harwood 开启了我的写作生涯。我的第一篇计算机专业性质的文章就是在比特杂志发表的。 Paul,仿佛你一直都在我的身旁,谢谢你。
|
||||
|
||||
在互联网档案库中,关于比特杂志的分类广告信息已经几乎查询不到了。分类广告模式曾经给出版商带来巨大的收入。免费的分类广告网站 Craigslist 在这个领域独占鳌头,同时也扼杀了像比特杂志这种以传统的报纸和出版为主的杂志行业。
|
||||
|
||||
其中有一些让我最难以忘怀的记忆就是一个12岁左右的吊儿郎当的小屁孩,匆匆忙忙地跑到我钟爱的电脑店里递给我一本初学者好书比特杂志,他脸上挂满了对我这种光鲜亮丽的女人所做工作的不屑和不理解的表情。我拆开杂志,指着其中一篇我写的关于Linux系统的文章给他看,他说“哦,确实是这样的,我明白了”。他尴尬的脸变成了那种正常生理上都不可能呈现的颜色,然后很仓促地夹着尾巴溜走了。(不是的,我亲爱的、诚实的读者们,他不是真的只有12岁,而应该是20来岁。他现在应该比以前更成熟懂事一些了吧!)
|
||||
|
||||
###发现 Linux
|
||||
|
||||
我第一次了解到 Linux 系统是在比特杂志上,大概在 1977年左右。我一开始用的一些 Linux操作系统版本是 Red Hat 5 和 Mandrake Linux。 Mandrake真是太棒了,它是第一款易安装型的Linux系统,并且还附带图形界面和声卡驱动,因此我可以快速玩转 Tux Racer 游戏。不像那时候大多数的有教育背景的 Linux 用户那样,因为我之前没接触过 Unix系统,所以我学习起来比较难。但是一切都还顺利吧,因为我学到的东西都很有用。相对于学习 Windows 系统来说,我在 Linux 系统里学到的东西都很实用,也没必要像在Windows环境中那样非得把任务拖放到DOS下来执行。
|
||||
|
||||
玩转电脑真是充满了太多的乐趣,后来我转行成为计算机自由顾问,去帮助一些小型公司的IT部门把数据迁移到 Linux 服务器上,这迫使 Windows 系统或多或少的失去一些用武之地。通常情况下我们都是在背地里偷偷地做这些工作的,因为那段时期微软把 Linux 称为毒瘤,诬蔑 Linux 系统是一种共产主义用来削弱和吞噬我们身体里的珍贵血液的阴谋。
|
||||
|
||||
### Linux 赢了
|
||||
|
||||
我持续做了很多年的顾问工作,也做其它一些相关的工作,比如:电脑硬件修理和升级、布线、系统和网络管理,还有其它一些混合的包括 Apple、Windows、Linux 系统在内的网络工作。Apple 和 Windows 系统故意不兼容对方,因此这两个系统真的是最头疼,也最难整合到同一网络中。但是在Linux系统和其它开源软件中最有趣的一件事是总有一些人能够时时处理这些厂商之间的兼容性问题。
|
||||
|
||||
现在已经大不同了。在系统间的互操作方面一直存在一些兼容性问题,而且也没有1级桌面的 Linux 系统 OEM 厂商。我觉得这是因为微软和苹果公司在零售行业在大力垄断造成的。也许他们这样做反而帮了我们帮大忙,因为我们可以从 ZaReason 和 System76 这样独立的 Linux 系统开发商得到更好的服务和更高性能的系统。他们对 Linux 系统都很专业,也特别欢迎我们这样的用户。
|
||||
|
||||
Linux 除了在零售行业的桌面版系统占有一席之地以外,从嵌入式系统到超级计算机以及分布式计算系统等各个方面都占据着主要地位。开源技术掌握着软件行业的发展方向,所有的软件行业的前沿技术,比如容器、集群以及人工智能的发展都离不开开源技术的支持。从我的第一台老式的 386SX 电脑到现在,Linux 和开源技术都取得了巨大的进步。
|
||||
|
||||
如果没有 Linux 系统和开源,这一切都不可能发生。
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/life/16/7/my-linux-story-carla-schroder
|
||||
|
||||
作者:[Carla Schroder ][a]
|
||||
译者:[译者ID](https://github.com/rusking)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/carlaschroder
|
@ -1,5 +1,3 @@
|
||||
Translated by H-mudcup
|
||||
|
||||
Linux 的逆袭
|
||||
========================
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user