在Windows 7上使用Octave中的soundsc

Jef*_*eff 3 octave

好吧,我在开始这个问题时遇到了麻烦.我试图在Octave中使用soundsc函数,但我一直收到此错误:

error: sound.m: No command line utility found for sound playing
Run Code Online (Sandbox Code Playgroud)

我在网上搜索了一些但却找不到该做什么.这是我在网上找到的包含错误的文件的源代码的链接:http://octave-audio.sourcearchive.com/documentation/1.1.3/sound_8m-source.html

我认为错误来自这里:

  ## What do we use for playing?
  global sound_play_utility;
  if ~isempty(sound_play_utility),
    ## User specified command
  elseif  (file_in_path(EXEC_PATH, "ofsndplay"))
    ## Mac
    sound_play_utility = "ofsndplay -"
  elseif (file_in_path(EXEC_PATH, "play"))
    ## Linux (sox)
    sound_play_utility = "play -t AU -";
  else
    error("sound.m: No command line utility found for sound playing");
  endif
Run Code Online (Sandbox Code Playgroud)

我只是碰巧使用Windows 7,所以我想我必须以某种方式指定自己的路径?更改源代码?我不知道我想要做些什么才能让它发挥作用!有人能告诉我吗?

Ste*_* D. 6

我不知道这是否适用于Windows 7,但这就是我设法在Windows XP上运行soundsc,sox和octave:假设你已经安装了八度,

  1. 下载并安装Win32的sox:http://sox.sourceforge.net/
  2. 转到安装了sox的目录(例如C:\ sox-14-3-1),复制"sox.exe"并将副本重命名为"play".重要说明:您必须删除".exe"文件扩展名!确保已在资源管理器中设置设置以显示文件扩展名.
  3. 使用命令行参数启动Octave --exec-path C:\ sox-14-3-1(或者您选择安装sox的路径).(如果您使用qtoctave作为GUI,您也可以在"八度参数"下的设置中的"八度"选项卡中的设置中进行设置)

现在,八度音程应该找到播放声音的"播放"可执行文件.

您可以使用以下代码尝试它,这应该产生一些丑陋的哔哔声;-)

% Sampling theorem - mirror frequency
% s3s11_1.m * mw * 11/17/2007
FS = 8000;    % sampling frequency in Hz
t = 0:1/FS:1; % normalized time
x = [];
for k = 1:7
x  = [x sin(2*pi*k*1e3*t)]; % signal 1...7 kHz
end
soundsc(x,FS) % sound
Run Code Online (Sandbox Code Playgroud)

希望有所帮助:-).