Octave, ekvivalentní software k Matlabu v Linuxu, má řadu funkcí a příkazů, které umožňují získávání, záznam, přehrávání a digitální zpracování zvukových signálů pro zábavní aplikace, výzkum, lékařství nebo jakékoli jiné vědecké oblasti. V tomto tutoriálu použijeme Octave V4.0.0 v Ubuntu a začneme číst ze zvukových souborů prostřednictvím zápisu a přehrávání signálů, abychom emulovali zvuky používané v široké škále činností.
Poznámka že hlavním cílem tohoto tutoriálu není nainstalovat nebo naučit se používat již zavedený software pro zpracování zvuku, ale spíše pochopit, jak funguje z hlediska designu a zvukového inženýrství.
Předpoklady
Prvním krokem je instalace octave. Spuštěním následujících příkazů v terminálu přidejte Octave PPA do Ubuntu a nainstalujte software.
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave
Krok 1:Otevření oktávy.
V tomto kroku otevřeme software kliknutím na jeho ikonu, kliknutím na rozevírací nabídku Prohlížeč souborů můžeme změnit pracovní adresář.
Krok 2:Informace o zvuku
Příkaz "audioinfo" nám ukazuje relevantní informace o zvukovém souboru, který budeme zpracovávat.
>> info = audioinfo ('testing.ogg')
Krok 3:Čtení zvukového souboru
V tomto tutoriálu budu číst a používat soubory ogg, pro které je možné číst charakteristiky, jako je vzorkování , typ zvuku (stereo nebo mono), počet kanálů atd. Měl bych zmínit, že pro účely tohoto návodu všechny použité příkazy budou provedeny v okně terminálu Octave. Nejprve musíme uložit soubor ogg do proměnné. Poznámka:je důležité, že soubor musí být v pracovní cestě Octave
>> file='yourfile.ogg'
>> [M, fs] = audioread(file)
Kde M je matice jednoho nebo dvou sloupců, v závislosti na počtu kanálů a fs je vzorkovací frekvence.
Existují některé možnosti, které můžeme použít pro čtení zvukových souborů, jako např. :
>> [y, fs] = audioread (filename, samples)
>> [y, fs] = audioread (filename, datatype)
>> [y, fs] = audioread (filename, samples, datatype)
Kde vzorky určují počáteční a koncový rámec a datový typ určuje typ dat, který se má vrátit. Hodnoty můžeme přiřadit libovolné proměnné:
>> samples = [1, fs)
>> [y, fs] = audioread (filename, samples)
A o datovém typu:
>> [y,Fs] = audioread(filename,'native')
Pokud je hodnota 'native', pak typ dat závisí na tom, jak jsou data uložena ve zvukovém souboru.
Krok 4:Zápis zvukového souboru
Vytvoření souboru ogg:
Za tímto účelem vygenerujeme soubor ogg s hodnotami z kosinusu. Vzorkovací frekvence, kterou použiji, je 44100 vzorků za sekundu a soubor bude trvat 10 sekund. Frekvence kosinusového signálu je 440 Hz.
>> filename='cosine.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*440*t;
>> signal=cos(w);
>> audiowrite(filename, signal, fs);
Tím se v našem pracovním prostoru vytvoří soubor s názvem 'cosine.ogg', který obsahuje kosinusový signál.
Pokud přehrajeme soubor 'cosine.ogg', bude to reprodukovat 440Hz tón, který je ekvivalentní hudebnímu tónu „A“. Pokud chceme vidět hodnoty uložené v souboru, musíme soubor 'číst' pomocí funkce 'audioread'. V dalším tutoriálu uvidíme, jak zapsat zvukový soubor se dvěma kanály.
Krok 5:Přehrání zvukového souboru
Octave má ve výchozím nastavení audio přehrávač, který můžeme použít pro testovací účely. Jako příklad použijte následující funkce:
>> [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);
V dalších částech tutoriálu uvidíme pokročilé funkce zpracování zvuku a možné případy použití pro vědecké a komerční použití.
-
Jak monitorovat soubory protokolu serveru pomocí Logwatch na Debianu a Ubuntu
-
Vědecké zpracování zvuku, část III – Jak aplikovat pokročilé efekty matematického zpracování na zvukové soubory s Octave 4.0 na Ubuntu
-
Vědecké zpracování zvuku, část II – Jak vytvořit základní matematické zpracování signálu ve zvukových souborech pomocí Ubuntu s Octave 4.0