2013-08-02 260 views
0

我有一个加载WAV音频文件,并发挥它的一些特殊部分的MATLAB代码。它曾经在我的电脑上播放声音,但现在没有声音。算法正常工作,并显示结果,但在沉默中,即不播放任何声音。我在笔记本电脑上检查它,它能正常工作并播放声音。我不知道该怎么办?
,我已经做了,并可能导致问题的唯一的事情是:我已经得到了MATLAB的两个版本在我的电脑:MATLAB 7.1和M​​ATLAB r2013a(8.1),我已经删除了MATLAB 7.1,没有它真的引起问题?
我重新安装matlab 7.1然后,但它没有帮助。
MATLAB不能播放声音,请如我尝试此代码,但它不会播放声音:
MATLAB不会播放声音

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

和我正在同代码:silence removal

+0

你把y作为支票吗? –

+0

daqhwinfo('winsound')的输出是什么? – nkjt

+0

@门多,是的,我把它,没问题。 – samdean

回答

0

由于daqhwinfo的输出('winsound')显示:

InstalledBoardIds: {'0' '1'}

这意味着Matlab看到多个声卡/可能的音频输出。我相信它会默认为哪一个是“0”。查看“BoardNames”和“ObjectConstructorName”的内容以确定发生了什么。你可以尝试(每个板卡ID):

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) 

比较这些与你从你的笔记本电脑,在声音不工作得到的值。

+0

它给出了这样的错误:使用audioplayer错误(线223) 找不到指定的设备 – samdean

+0

我检查了一切,除了设备的名称是一样的。我的笔记本电脑上只有一个声音设备,但我的电脑上只有两个声音设备。在“0”,这是默认为我的电脑中正确的音频设备和“1”是“调制解调器#0行播放” ,我认为我用它为我的电视卡。 – samdean

+0

正如你所说我检查了我的电脑的所有音频输出和声音来自其6个适配器之一,但不是我的电脑的主要输出。我将扬声器连接到此适配器,但现在我的电脑没有声音。我怎么能让matlab使其输出设备的主要输出声音(并感谢您的所有帮助) – samdean

1

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

info = audiodevinfo 

返回一个空的结构。

事实证明,这是一个文件路径的问题。

我救了我的自定义文件的路径,然后还原默认的文件路径:

restoredefaultpath 
rehash toolboxcache 

我再慢慢添加子文件夹回我的文件路径和它工作得很好。