我试图使用 Octave 将.wav文件读入 vector 数组以进行其他分析,但是当我尝试运行脚本时, Octave 无法打开该文件。
代码是:
[S,fs] = wavread('snare.wav');
plot(S);
运行脚本后,出现以下错误:
error: audioinfo: failed to open file snare.wav
wavread at line 91 column 8
analysis_1 at line 1 column 7
我的'snare.wav'文件与脚本文件'analysis_1.m'位于同一目录,因此编译器应该能够找到.wav文件。只是 Octave 无法打开文件。
我在Dell XPS上运行ubuntu。
任何帮助,将不胜感激。我应该尝试重新安装 Octave 音阶吗?
谢谢社区
最佳答案
文件snare.wav
和analysis_1.m
是否在同一目录中都没有关系。重要的是,当使用'snare.wav'
调用waveread时,wave文件位于“当前目录”中。如果您在脚本中使用cd
更改目录,或者使用实际路径调用脚本和函数,或者通过addpath
添加它们,则这一点很重要。我将以最后一个为例。
考虑以下结构:
.
└── foo
├── bar.m
└── myfile
文件bar.m仅包含
stat myfile
如果现在使用
foo
导航到cd
并调用bar
,您将得到结果octave:1> bar
ans =
scalar structure containing the fields:
dev = 2065
ino = 5672946
mode = 33188
modestr = -rw-r--r--
nlink = 1
uid = 1000
gid = 1000
rdev = 0
size = 6
atime = 1.5196e+09
mtime = 1.5196e+09
ctime = 1.5196e+09
blksize = 0
blocks = 8
但是,例如,如果您使用
addpath
,而您不在foo之外:octave:1> addpath ("foo")
octave:2> bar
ans = [](0x0)
找不到文件。
因此,要调试代码,只需在
pwd
之前直接添加ls
和waveread
并检查它们是否符合您的期望,或者添加keyboard
并从中进行调试
关于file - Octave 功能wavread无法打开wav文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48981312/