Octave是Matlab在Linux中的等效软件,它具有许多功能和命令,可用于娱乐应用,研究,医疗或任何其他科学领域的音频信号的采集,记录,播放和数字处理。 在本教程中,我们将在Ubuntu中使用Octave V4.0.0,并将通过写入和播放信号开始从音频文件读取,以模拟广泛活动中使用的声音。
请注意 ,本教程的主要重点不是安装或学习使用已经建立的音频处理软件,而是从设计和音频工程的角度了解其工作原理。
先决条件
第一步是安装八度。 在终端中运行以下命令,在Ubuntu中添加Octave PPA,并安装软件。
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave
第1步:打开八度。
在这一步中,我们通过点击它的图标打开软件,我们可以通过点击文件浏览器下拉菜单来更改工作目录。
第2步:音频信息
命令“audioinfo”显示有关我们将要处理的音频文件的相关信息。
>> info = audioinfo ('testing.ogg')
第3步:读取音频文件
在本教程中,我将阅读并使用ogg文件,它可以读取特征,如采样,音频类型(立体声或单声道),通道数等。我应该提到,为了本教程的目的,所有使用的命令将在八度的终端窗口中执行。 首先,我们必须将ogg文件保存在一个变量中。 注意: 文件必须位于Octave的工作路径中很重要
>> file='yourfile.ogg'
>> [M, fs] = audioread(file)
其中M是一列或两列的矩阵,取决于通道数, fs是采样频率。
我们可以使用一些选项来读取音频文件,例如:
>> [y, fs] = audioread (filename, samples)
>> [y, fs] = audioread (filename, datatype)
>> [y, fs] = audioread (filename, samples, datatype)
where 示例指定起始和结束帧, 数据类型指定要返回的数据类型。 我们可以为任何变量赋值:
>> samples = [1, fs)
>> [y, fs] = audioread (filename, samples)
关于数据类型:
>> [y,Fs] = audioread(filename,'native')
如果值为“ native ”,则数据类型取决于数据如何存储在音频文件中。
第4步:编写音频文件
创建ogg文件:
为此,我们将生成一个带余弦值的ogg文件。 我将使用的抽样频率是每秒44100个样本,文件将持续10秒。 余弦信号的频率为440 Hz。
>> filename='cosine.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*440*t;
>> signal=cos(w);
>> audiowrite(filename, signal, fs);
这将在我们的工作区中创建一个包含余弦信号的名为' cosine.ogg '的文件。
如果我们播放' cosine.ogg '文件,那么这将重现一个相当于“ A ”音调的440Hz音调。 如果我们想看到文件中保存的值,我们必须用' audioread '功能' 读取 '文件。 在另一个教程中,我们将看到如何使用两个通道编写音频文件。
第5步:播放音频文件
Octave,默认情况下,有一个音频播放器,我们可以用于测试目的。 使用以下功能作为示例:
>> [y,fs]=audioread('yourfile.ogg');
>> player=audioplayer(y, fs, 8)
scalar structure containing the fields:
BitsPerSample = 8
CurrentSample = 0
DeviceID = -1
NumberOfChannels = 1
Running = off
SampleRate = 44100
TotalSamples = 236473
Tag =
Type = audioplayer
UserData = [](0x0)
>> play(player);
在本教程的下一部分中,我们将看到高级音频处理功能和可用于科学和商业用途的用例。