「已注销」 2023-05-16 23:09 采纳率: 0%
浏览 856
已结题

matlab中audioread函数无法使用

今天在matlab用audioread这个函数时报错,只提示不支持该文件类型,但是我用的mp3文件明明可以。
下面是我用来示例的一段代码,插入代码块里面没有找到matlab,用的python,我选择的是一段手机录音,mp3格式:

[name,path] = uigetfile;
file = strcat(path,name);
[y,Fs] = audioread(file);
sound(y,Fs); 

这是运行后的结果,工作区的文件地址也是合理的 :

错误使用 audioread>readaudio
不支持该文件类型
出错 audioread (第 137 行)
[y, Fs] = readaudio (filename, range, datatype);

img

img

 下图是我在audioread代码里找到的报错的位置

img

原本软件一切正常,舍友的代码出现了这样的问题,到我的电脑里面试一试,结果我的matlab也出现了一样的问题。我重新安装matlab也解决不了。
它报错是不支持该文件类型,我换了不同音频格式的文件也一样报错。我怀疑是matlab的某个设置被改了,实在没办法,十分钟前还是好好的,瞬间用不了audioread函数。我感觉是舍友的代码运行后修改了我的设置,但是我们后续有修改代码,已经无法找到原代码了。只能希望有遇到过这样问题的朋友能告诉我怎么解决,真的十分感谢。

  • 写回答

3条回答 默认 最新

  • Wayne_Fine 优质创作者: 嵌入式与硬件开发技术领域 2023-05-17 07:44
    关注

    这样就可以了:

                [file,path] = uigetfile({'.mp3';'.wav';'.flac'});
                if isequal(file,0)
                   disp('User selected Cancel');
                else
                   disp(['User selected ', fullfile(path,file)]);
                end
                [y,Fs] = audioread(file);
                sound(y,Fs);
                disp('当前正在播放')
                disp('done')
    

    img

    img

    打上断点可以看App Designer里此时的工作区变量:

    img

    可以发现此时是读取成功的。

    img

    题主的报错原因是多了这步file = strcat(path,name);

    ,直接audioread(name)就可以读取到指定路径的文件了,注意选择文件格式:

    img

    img

    如帮助您解决问题,请记得采纳,谢谢合作!

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月20日
  • 创建了问题 5月16日