作者DigiPrince (幻无影)
看板MATLAB
标题Re: [问题] MATLAB可以读5.1声道的WAV档吗
时间Thu Jul 30 16:15:05 2009
※ 引述《wes7034 (black)》之铭言:
: 如提~~
: 目前MATLAB读WAV的指令"wavread"就我所知好像只能读不多於双声道的音讯
: 有没有大大知道,或是有什麽办法用MATLAB读5.1声道吗??
: 先谢谢各位了~~~
不是很确定您的档案是哪种格式,不过小弟是用下面这个网站的范例做测试的:
http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html
里面分别有一个六声道一个八声道,格式为 PCM 的 wav 档。
● 注意!接下来会修改到 MATLAB 内部的函数档案,风险请自负。
进入 MATLAB,在 Command Window 输入:which wavread
执行後 MATLAB 会显示出 wavread 之函数档位置,例如:
C:\Program Files\MATLAB\R2008a\toolbox\matlab\audiovideo\wavread.m
用记事本或其他您用得顺手的文字编辑器打开这个函数档。
找到以下的段落(约在档案的第 533 行左右,可能因版本不同而有差异)
switch wavefmt.wFormatTag
case 1
% PCM Format:
[dat,msg] = read_dat_pcm(datack,wavefmt,ext,isNative);
将
case 1 修改为
case {1, 65534}
最後,存档,重开 MATLAB。
完成!
P.S. 测试时若想用 soundsc 播放请注意 MATLAB 只能一次播放至多两个声道。
※ 编辑: DigiPrince 来自: 61.58.102.177 (07/30 16:16)
1F:推 wes7034: 真的很感谢你~~ 已经修改过了~~也可以读了~~~ 感恩~~~~ 07/31 11:51
2F:推 wes7034:不过可以问一下为什麽要这样改吗?? 07/31 11:54