Octave, le logiciel équivalent de Matlab sous Linux, possède un certain nombre de fonctions et de commandes qui permettent l'acquisition, l'enregistrement, la lecture et le traitement numérique de signaux audio pour des applications de divertissement, de recherche, médicales ou tout autre domaine scientifique. Dans ce didacticiel, nous utiliserons Octave V4.0.0 dans Ubuntu et commencerons à lire des fichiers audio en écrivant et en jouant des signaux pour émuler les sons utilisés dans un large éventail d'activités.
Remarque que l'objectif principal de ce didacticiel n'est pas d'installer ou d'apprendre à utiliser un logiciel de traitement audio déjà établi, mais plutôt de comprendre comment il fonctionne du point de vue de la conception et de l'ingénierie audio.
Prérequis
La première étape consiste à installer octave. Exécutez les commandes suivantes dans un terminal pour ajouter Octave PPA dans Ubuntu et installer le logiciel.
sudo apt-add-repository ppa:octave/stable
sudo apt-get update
sudo apt-get install octave
Étape 1 :Octave d'ouverture.
Dans cette étape, nous ouvrons le logiciel en cliquant sur son icône, nous pouvons changer le répertoire de travail en cliquant sur le menu déroulant Navigateur de fichiers.
Étape 2 :Informations audio
La commande "audioinfo" nous montre des informations pertinentes sur le fichier audio que nous allons traiter.
>> info = audioinfo ('testing.ogg')
Étape 3 :Lire un fichier audio
Dans ce tutoriel, je vais lire et utiliser des fichiers ogg pour lesquels il est possible de lire des caractéristiques comme l'échantillonnage, le type audio (stéréo ou mono), le nombre de canaux, etc. Je dois mentionner que pour les besoins de ce tutoriel, tous les commandes utilisées seront exécutées dans la fenêtre du terminal d'Octave. Tout d'abord, nous devons enregistrer le fichier ogg dans une variable. Remarque :il est important que le fichier soit dans le chemin de travail d'Octave
>> file='yourfile.ogg'
>> [M, fs] = audioread(file)
Où M est une matrice à une ou deux colonnes, selon le nombre de canaux et fs est la fréquence d'échantillonnage.
Il existe certaines options que nous pouvons utiliser pour lire des fichiers audio, telles que :
>> [y, fs] = audioread (filename, samples)
>> [y, fs] = audioread (filename, datatype)
>> [y, fs] = audioread (filename, samples, datatype)
Où samples spécifie les images de début et de fin et datatype spécifie le type de données à renvoyer. Nous pouvons attribuer des valeurs à n'importe quelle variable :
>> samples = [1, fs)
>> [y, fs] = audioread (filename, samples)
Et à propos du type de données :
>> [y,Fs] = audioread(filename,'native')
Si la valeur est "native", le type de données dépend de la façon dont les données sont stockées dans le fichier audio.
Étape 4 :Écrire un fichier audio
Création du fichier ogg :
Pour cela, nous allons générer un fichier ogg avec des valeurs issues d'un cosinus. La fréquence d'échantillonnage que j'utiliserai est de 44100 échantillons par seconde et le fichier durera 10 secondes. La fréquence du signal cosinus est de 440 Hz.
>> filename='cosine.ogg';
>> fs=44100;
>> t=0:1/fs:10;
>> w=2*pi*440*t;
>> signal=cos(w);
>> audiowrite(filename, signal, fs);
Cela crée un fichier nommé 'cosine.ogg' dans notre espace de travail qui contient le signal cosinus.
Si nous lisons le fichier 'cosine.ogg', cela reproduira un Tonalité de 440 Hz qui équivaut à une tonalité musicale « A ». Si nous voulons voir les valeurs enregistrées dans le fichier, nous devons "lire" le fichier avec la fonction "audioread". Dans un prochain tutoriel, nous verrons comment écrire un fichier audio avec deux canaux.
Étape 5 :Lecture d'un fichier audio
Octave, par défaut, a un lecteur audio que nous pouvons utiliser à des fins de test. Utilisez les fonctions suivantes comme exemple :
>> [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);
Dans les prochaines parties du didacticiel, nous verrons des fonctionnalités avancées de traitement audio et des cas d'utilisation possibles à des fins scientifiques et commerciales.