2

我有一个加载 wav 音频文件并播放其中一些特殊部分的 matlab 代码。它曾经在我的电脑上播放声音,但现在没有声音。算法正常工作并显示结果,但无声,即它不播放任何声音。我在我的笔记本电脑上检查它,它工作正常并播放声音。我不知道该怎么办?
我所做的唯一可能导致问题的事情是:我的电脑上有两个版本的 matlab:matlab 7.1 和 matlab r2013a(8.1),我删除了 matlab 7.1,是否真的导致了问题?
然后我重新安装了matlab 7.1,但没有帮助。
matlab 根本无法播放声音,例如我尝试了这段代码,但它不会播放声音:

[y,Fs] = audioread('1.wav');
sound(y,Fs);

我正在使用的代码是:消除静音

4

2 回答 2

2

我在这个问题上挣扎了很长时间。我的笔记本电脑播放的声音很好,但是

info = audiodevinfo

返回一个空结构。

原来是文件路径问题。

我保存了我的自定义文件路径,然后恢复了默认文件路径:

restoredefaultpath 
rehash toolboxcache

然后我慢慢地将子文件夹添加回我的文件路径,它工作正常。

于 2015-10-03T18:47:04.390 回答
1

正如 daqhwinfo('winsound') 的输出所示:

InstalledBoardIds: {'0' '1'}

这意味着 Matlab 看到不止一个声卡/可能的音频输出。我相信它将默认为“0”中的任何一个。查看“BoardNames”和“ObjectConstructorName”的内容以确定发生了什么。您可以尝试(对于每个 BoardID):

load handel;
% last input for audioplayer can be 1 or 0 to choose which audio output
player = audioplayer(y, Fs, 16, 1); 
play(player);

另一种检查方法:

ao = analogoutput('winsound',0); %should be default device
ao2 = analogoutput('winsound',1); 

out = daqhwinfo(ao)
out2 = daqhwinfo(ao2)

将这些值与您从笔记本电脑中获得的值进行比较,其中声音确实有效。

于 2013-08-02T11:43:40.167 回答