LinuxのMatlabと同等のソフトウェアであるOctaveには、エンターテインメントアプリケーション、研究、医療、またはその他の科学分野向けのオーディオ信号の取得、録音、再生、デジタル処理を可能にする多数の機能とコマンドがあります。このチュートリアルでは、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:オクターブを開く。
このステップでは、アイコンをクリックしてソフトウェアを開き、[ファイルブラウザ]ドロップダウンをクリックして作業ディレクトリを変更できます。
ステップ2:オーディオ情報
コマンド「audioinfo」は、処理するオーディオファイルに関する関連情報を表示します。
>> info = audioinfo ('testing.ogg')
ステップ3:オーディオファイルの読み取り
このチュートリアルでは、サンプリング、オーディオタイプ(ステレオまたはモノラル)、チャンネル数などの特性を読み取ることができるoggファイルを読み取って使用します。このチュートリアルでは、すべて使用するコマンドは、Octaveのターミナルウィンドウで実行されます。まず、oggファイルを変数に保存する必要があります。注:ファイルがOctaveの作業パスにある必要があります
>> file='yourfile.ogg'
>> [M, fs] = audioread(file)
ここで、Mはチャネル数に応じて、1列または2列の行列であり、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')
値が「ネイティブ」の場合、データのタイプは、データがオーディオファイルに保存される方法によって異なります。
ステップ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(filename, signal, fs);
これにより、ワークスペースに「cosine.ogg」という名前のファイルが作成されます。このファイルには、コサイン信号が含まれています。
「cosine.ogg」ファイルを再生すると、 「A」の楽音に相当する440Hzの音。ファイルに保存されている値を確認したい場合は、「audioread」関数を使用してファイルを「読み取る」必要があります。さらなるチュートリアルでは、2つのチャネルでオーディオファイルを作成する方法を説明します。
ステップ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);
チュートリアルの次のパートでは、高度なオーディオ処理機能と、科学的および商業的使用のための可能なユースケースを紹介します。