科学音频处理,第一部分 - 如何在 Ubuntu 上使用 Octave 4.0.0 读写音频文件
在此页
- 先决条件
- 第 1 步:打开 Octave。
- 第 2 步:音频信息
- 第 3 步:读取音频文件
- 第 4 步:编写音频文件
- 创建 ogg 文件:
Octave 是 Linux 中 Matlab 的等效软件,具有许多功能和命令,可以为娱乐应用、研究、医学或任何其他科学领域采集、记录、播放和数字处理音频信号。在本教程中,我们将在 Ubuntu 中使用 Octave V4.0.0,并开始通过编写和播放信号来读取音频文件,以模拟广泛活动中使用的声音。
请注意,本教程的主要重点不是安装或学习使用已经建立的音频处理软件,而是从设计和音频工程的角度了解它的工作原理。
先决条件
第一步是安装 Octave。在终端中运行以下命令以在 Ubuntu 中添加 Octave PPA 并安装软件。
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave第 1 步:打开 Octave。
第 2 步:音频信息
命令 \audioinfo\ 向我们显示有关我们将处理的音频文件的相关信息。>> info = audioinfo ('testing.ogg')
第 3 步:读取音频文件
在本教程中,我将阅读和使用 ogg 文件,对于这些文件,可以读取采样、音频类型(立体声或单声道)、通道数等特征。我应该提到,出于本教程的目的,所有使用的命令将在 Octave 的终端窗口中执行。首先,我们必须将 ogg 文件保存在一个变量中。注意:重要的是文件必须在 Octave 的工作路径中>> file='yourfile.ogg'
>> [M, fs] = audioread(file)
>> [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')
如果值为 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);第 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);
在本教程的下一部分中,我们将看到高级音频处理功能以及科学和商业用途的可能用例。