繁体   English   中英

在Windows 7上使用Octave中的soundsc

[英]Using soundsc in Octave, on Windows 7

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

error: sound.m: No command line utility found for sound playing

我在网上搜索了一些但却找不到该做什么。 这是我在网上找到的包含错误的文件的源代码的链接: 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

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

我不知道这是否适用于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

希望有所帮助:-)。

您链接的文件包含顶部的文档,其中包括以下内容:

## This function writes the audio data through a pipe to the program
## "play" from the sox distribution.

所以你需要为初学者安装sox 这将包括play.exe 然后你必须在Octave中设置全局变量sound_play_utility的值以反映你安装sox ,或者确保file_in_path(EXEC_PATH)东西可以找到play.exe 从您发布的代码片段向下看几行,看起来该文件将该变量传递给popen ,它应该启动一个新进程。 我在Windows机器上从未在Octave上做过类似的事情,所以我无法帮助您了解具体细节。

通过查看代码,您基本上可以看到您需要做的事情。 Octave模块首先检查您是否将全局sound_play_utility设置为要用于播放声音的实用程序。 这真的是你的选择,实际上,Windows上的任何音频播放器都应该工作(mplayer,foobar,Winamp,无论如何)。

仅当此变量为空时,其他检查才会失败,因此只需导出全局并将其设置为已安装的播放器的路径。

我不相信所有音频播放器都能正常工作。 他们必须能够通过管道将AU文件播放到标准输入。 以下是Octave命令,我用它来启用VLC播放。 您可能需要在VLC_PROGRAM变量中调整VLC程序的路径。

VLC_PROGRAM="c:/Program Files (x86)/VideoLan/VLC/vlc";
VLC_OPTIONS="-q --play-and-exit -";    
sound_play_utility=["cmd /c \"" VLC_PROGRAM "\" " VLC_OPTIONS];    
clear VLC_PROGRAM VLC_OPTIONS;

我建议将这些命令放在.octaverc启动文件中,以便每次启动Octave时自动配置声音播放器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM