1 - Introdução

O Octave possui um módulo embutido que é dedicado para a aquisição de som. As principais funções de áudio podem ser acessadas aqui.

Com essas funções é possível criar aplicações no Octave para processamento de áudio. Veja um dado obtido:

2 - Código

2.1 - Função de captura

Crie um arquivo com o mesmo nome da função e coloque-o na mesma pasta do projeto que estiver desenvolvendo.

################################################################################
# Captura de som com Octave
# 16 bits
# 1 canal
#
# autor: Elias J.
# data: 29/01/2020
################################################################################
 
function [audiodata, fs] = capturaSom (time, fs = 44100, nbits = 16, nchannel = 1)
  
# especifica um gravador 
rec = audiorecorder (fs, nbits, nchannel);
 
# grava durante time secs
recordblocking (rec, time);
 
# obtem os dados do audio gravado
audiodata = getaudiodata (rec);
 
 
endfunction

2.2 -Usando a função de captura

[audiodata, fs] = capturaSom(intervalo); #intervalo é o tempo de captura desejado do áudio

2.3 -Escutando o áudio gravado

freq = 44100; # frequência utilizada na gravação do áudio
nbits = 16; #número de bits da placa de áudio
soundsc(audiodata,freq, nbits)

2.4 -Visualização gráfica

Uma possível visualização dos dados pode ser feita da seguinte maneira

tfinal = length(x)*1/fs;
t = linspace(0,tfinal, length(x));
figure;
subplot(1,1,1)
plot(t,x,'.b')
grid on
xlabel('t(s)')
ylabel('sinal')

2.5 -Salvando os dados

Para salvar os dados obtidos em um arquivo .mat

save -mat nome_do_arquivo.mat "audiodata" "fs"

Ou salvar em um formato de som .wav

 audiowrite("som2.wav",audiodata,44100,'BitsPerSample',16)

2.6 -Carregando os dados

Caso um dado de áudio tenha sido salvo na pasta de trabalho utilizando o Octave, utilize os seguintes comandos para carregá-los para o workspace:

arquivo = 'nome_do_arquivo.mat';
load(arquivo);

Caso seja um arquivo de áudio em .wav, utilize o seguinte comando:

arquivo = 'nome_do_arquivo.wav';
info = audioinfo(arquivo);
[x, fs] = audioread(arquivo);
x = x(:,1)'; # vetor linha
Ts = 1/fs;
tfinal = Ts*length(x);

Exemplos de arquivos salvos para serem testados:

som.matDescarregar

som2.wavDescarregar

som3.matDescarregar

3 - Convertendo .mp3 👉 .mat

Para carregar uma música .mp3 no octave é necessário converter para o formato .mat.

Uma maneira de fazer essa conversão é utilizando o programa gratuito Audacity.

  • Abra o arquivo mp3;

  • Caso tenha dois canais no áudio, configure para mono;

  • Exclua um dos canais, clicando no “X”;
  • Exporte o áudio para o formato .mat.

Pronto! Agora você já pode utilizar o arquivo de áudio no Octave.