科学音频处理(一):??如何使用Octave对娱乐应用、研究、医学和其他科学领域的音频文件进行数字处理读写。在本教程中,我们将在Ubuntu上使用Octave版本4.0.0读取音频文件,然后生成信号并播放它以模拟在各种情况下使用音频信号。本教程的重点不是安装和学习使用已安装的音频处理软件,而是从设计和音频工程的角度了解它的工作原理。环境准备是先安装octave,在Ubuntu终端运行如下命令添加OctavePPA,然后安装Octave。sudoapt-add-repositoryppa:octave/stablesudoapt-getupdatesudoapt-getinstalloctave第一步:打开Octave这一步我们点击软件图标打开Octave,可以通过点击下拉按钮选择工作路径。第二步:音频信息使用audioinfo命令查看待处理音频文件的信息。>>info=audioinfo('testing.ogg')第3步:读取音频文件在本教程中,我将使用ogg文件读取此文件的属性,例如样本、音频类型(立体声和单声道)、数量渠道等等。必须说明的是,教程中使用的所有命令都是在Octave终端窗口中执行的。首先,我们必须将这个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)samples指定起始帧和结束帧,datatype指定返回的数据类型。可以为所有变量设置值:>>samples=[1,fs)>>[y,fs]=audioread(filename,samples)数据类型:>>[y,Fs]=audioread(filename,'native')if如果值为“native”,则其数据类型取决于数据在音频文件中的存储方式。第4步:音频文件的写入操作创建一个新的ogg文件:我们将从余弦值创建一个ogg文件。采样率为每秒44100次,此文件至少采??样10秒。余弦信号的频率为440Hz。>>filename='cosine.ogg';>>fs=44100;>>t=0:1/fs:10;>>w=2*pi*440*t;>>signal=cos(w);>>audiowrite(文件名、信号、fs);这会在工作目录中创建一个“cosine.ogg”文件,其中包含余弦信号。播放“cosine.ogg”文件会产生440Hz的音调,这正是音乐理论中的“A”键。如果需要查看文件中存储的值,必须使用'audioread'函数来读取文件。在后面的教程中,我们将看到如何在两个通道中读取音频文件。第五步:播放音频文件Octave有一个默认的音频播放器,您可以使用这个音频播放器进行测试。使用以下函数:>>[y,fs]=audioread('yourfile.ogg');>>player=audioplayer(y,fs,8)标量结构包含字段:BitsPerSample=8CurrentSample=0DeviceID=-1NumberOfChannels=1Running=offSampleRate=44100TotalSamples=236473Tag=Type=audioplayerUserData=[](0x0)>>播放(播放器);在本教程的后续部分,我们将进入音频处理的高级功能,并可能会接触一些科学和商业应用中的示例。
