我想编写一个将音频文件地址作为输入,然后对该音频文件进行一些更改并播放的函数。
我是Octave的新手,通过查看文档,我想到了下面的代码
function main
% clear screen
clear;
clc;
audio_src_address = 'introduction.wav';
NegateAudioPhase(audio_src_address);
endfunction;
function NegateAudioPhase (audio_src_address)
% load audio source
[y, fs] = audioread(audio_src_address);
% use chanel 1
y = y(:,1);
% audio frequency domain
f = fft(y);
m = abs(f);
p = angle(f);
% negate audio source phase
p = -p;
% calculate new fourier transform
f = m .* exp(j*p);
% create the new audio source
y2 = ifft(f);
% play audio sound
player = audioplayer(y2, fs);
play(player);
endfunction
我已将此代码放入main.m
文件中。
我使用八度CLI通过键入main
并按Enter键来运行代码。
代码将一直运行到最后,但不会播放音频。 执行后,命令行上会出现警告:
warning: Octave:audio-interrupt
warning: called from
main>NegateAudioPhase at line 33 column 1
main at line 6 column 5
我将所有代码放置在另一个文件中,但未定义任何功能,并且按预期工作。