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:
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.