2011-11-05 71 views

回答

4

有一段时间没有碰过Octave,并记得OSX上的声音有问题(显然,audio包在linux中运行良好)。音频包应该有一个sound()功能将使你的任务很简单:

%sample rate - 22050 
sr = [0:1/22050:1]; 
% A - 440Hz using sine 
a = sin(2*pi*440*sr); 
%play 
sound(a) 

不幸的是playaudio()在我的机器不能正常工作:

octave-3.0.3:15> playaudio(x) 
sh: /dev/dsp: Permission denied 

尽管如此,我测试过的声音( )并得到了一个音调。 如果你有声音()函数的问题,你可以尝试使用自定义声音()函数:

function sound(x, fs) 
    if(nargin == 1 || isempty(fs)) 
    fs = 8000; 
    endif 
    if(rows(x) != length(x)) 
    x = x' 
    endif 
    if(playrec('isInitialised')) 
    playrec('reset'); 
    endif 

    playrec('init', fs, 3, 1); 

    playrec('play', x, 1:size(x,2)); 
endfunction 

HTH,因为Octave是不是我的专业领域。