R中的wav文件不完整,但文件中有额外数据?

R中的wav文件不完整,但文件中有额外数据?,r,debugging,audio,binaryfiles,R,Debugging,Audio,Binaryfiles,我试图在R中打开一个声音文件,但是load.wave()函数抱怨该文件“不完整”。该声音在许多其他音频软件(mplayer、Audacity、Praat等)上播放效果良好,文件没有报告它与其他WAV文件有任何不同,这些文件没有问题: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz 我知道load.wave()在内部调用一个C函数来处理数据,但我不知道该函数是什么,或者它是做什么的(所以我不明

我试图在R中打开一个声音文件,但是
load.wave()
函数抱怨该文件“不完整”。该声音在许多其他音频软件(mplayer、Audacity、Praat等)上播放效果良好,
文件
没有报告它与其他WAV文件有任何不同,这些文件没有问题:

RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
我知道
load.wave()
在内部调用一个C函数来处理数据,但我不知道该函数是什么,或者它是做什么的(所以我不明白它为什么抱怨)。来自
load.wave()
的调用在R中被定义为
.call(“load\u wave\u file”,其中,PACKAGE=“audio”)
,其中
其中
是文件的路径

在Audacity中打开声音并将其再次保存为WAV文件会生成一个相同的声音文件,该文件可以在R中打开而不会出现任何问题

然而,这些文件似乎大不相同。使用时,两个标题都存在差异:

# Original file
0000 0000: 52 49 46 46 39 AE 02 00  57 41 56 45 66 6D 74 20  RIFF9... WAVEfmt   
0000 0010: 12 00 00 00 01 00 01 00  22 56 00 00 44 AC 00 00  ........ "V..D...  
0000 0020: 02 00 10 00 00 00 64 61  74 61 D4 AD 02 00 F9 FF  ......da ta......  

# Fixed file
0000 0000: 52 49 46 46 F8 AD 02 00  57 41 56 45 66 6D 74 20  RIFF.... WAVEfmt   
0000 0010: 10 00 00 00 01 00 01 00  22 56 00 00 44 AC 00 00  ........ "V..D...  
0000 0020: 02 00 10 00 64 61 74 61  D4 AD 02 00 FA FF F6 FF  ....data ........  
在整个文件中:

更有趣的是,原始文件末尾的块已被删除:

# Original file
0002 ADF0: 5E 00 5D 00 5F 00 5F 00  5F 00 5F 00 5E 00 5D 00  ^.]._._. _._.^.].  
0002 AE00: 5B 00 63 75 65 20 1C 00  00 00 01 00 00 00 01 00  [.cue .. ........  
0002 AE10: 00 00 88 58 01 00 64 61  74 61 00 00 00 00 00 00  ...X..da ta......  
0002 AE20: 00 00 88 58 01 00 4C 49  53 54 13 00 00 00 61 64  ...X..LI ST....ad  
0002 AE30: 74 6C 6C 61 62 6C 07 00  00 00 01 00 00 00 52 54  tllabl.. ......RT  
0002 AE40: 00               

# Fixed file
0002 ADF0: 5E 00 5F 00 5F 00 5F 00  5F 00 5D 00 5F 00 59 00  ^._._._. _.]._.Y.  
0002 AE00:                                                                         
0002 AE10:                                                                      
0002 AE20:                                                                      
0002 AE30:                                                                      
0002 AE40:
1。此文件有什么问题,使我无法打开它?

2。原始文件末尾的数据是什么?(见下文)

我知道有多个音频处理程序,它们对WAV规范相当自由,所以这种类型的问题并不少见。我只是想弄清楚到底发生了什么,也许可以实施一个修复(不需要我大发雷霆)并防止它在未来再次发生

更新: 该块似乎是一个“提示点块”,如下所述:

提示点块标识波形数据流中的一系列位置

我想这意味着它应该是无害的,但这就是问题的根源吗