Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我需要删除wave文件的前1024个字节。我尝试这样做,但我的wavfile损坏/失真:
wavFile = fopen(fullFileName, 'r'); % Open file for reading fseek (wavFile, 1024, -1);% Skip past header, which is 1024 bytes long. wF = fread (wavFile, inf, 'int16');% 16-bit signed integers wF = wF(:)'; newWavFile = fopen(strcat('new_',fileNames(fileNo).name), 'w+');% Open file for reading fwrite(newWavFile,wF); fclose(wavFile); 可能是什么问题? 回答: 我可以设法删除标头并通过以下方式纠正失真: wavFile = fopen(fullFileName, 'r');% Open file for reading fseek (wavFile, 1024, -1);% Skip past header, which is 1024 bytes long. wF = fread (wavFile, inf, 'int16');% 16-bit signed integers wF = wF(:)'; wF = 0.8*wF/max(abs(wF)); newWavFile =strcat('1_',fileNames(fileNo).name);% Open file for reading wavwrite(wF,16000,16,newWavFile); 更多&回答... |
![]() |
![]() |