【问题标题】:matlab wont play the soundmatlab不会播放声音
【发布时间】:2013-08-03 09:45:39
【问题描述】:

我有一个加载 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);

我使用的代码是:silence removal

【问题讨论】:

  • 您是否将y 绘制为支票?
  • daqhwinfo('winsound') 的输出是什么?
  • @Mendo,是的,我画了,没问题。
  • @nkjt,输出为: AdaptorDllName: [1x64 char] AdaptorDllVersion: '2.7 (R14SP3)' AdaptorName: 'winsound' BoardNames: {1x2 cell} InstalledBoardIds: {'0' ' 1'} ObjectConstructorName:{2x3 单元格}

标签: matlab audio wav


【解决方案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)

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

【讨论】:

  • 它给出了这个错误:Error using audioplayer (line 223) Could not find the specified device
  • 我检查了所有内容,除了设备名称相同。我的笔记本电脑上只有一个声音设备,但我的电脑上有两个。默认的“0”是我电脑的正确音频设备,“1”是“调制解调器#0 Line Playback”,我认为我将它用于我的电视卡。
  • 正如你所说,我检查了我电脑的所有音频输出,声音来自它的 6 个适配器之一,但不是我电脑的主输出。我将扬声器连接到此适配器,但现在我的电脑没有声音。我如何让 matlab 将 pc 的主要输出声音作为输出设备(感谢您的帮助)
  • 如果您仍然遇到此问题,请尝试(需要管理员访问权限): daqregister('winsound',unload); daqregister('winsound')
【解决方案2】:

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

info = audiodevinfo

返回一个空结构。

原来是文件路径问题。

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

restoredefaultpath 
rehash toolboxcache

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

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多