用Python恢复损坏的.wav文件
2007-07-18 00:14
190 查看
Thursday, October 12, 2006
Recovering a corrupted .wav file with Python
昨晚,由于与Skype配合使用的PowerGramo录音软件的崩溃,我在Procrastination Cure 研讨班上存储的录音都丢失了。幸运的是,一个与会人员还留有一点使用Gizmo***的录音,那是他们用来召集大家召开电话会议的。
郁闷的是,之所以他有两个录音是因为在研讨班上他的机器当掉了将近两个半小时的时间,所以第一个录音文件由于损坏而无法在Media Player中进行回放。我试了好几个音频编辑器来进行恢复,可是问题依旧。我在网上所找到唯一的用于恢复被损坏.wav文件的东西仅仅是Gizmo FAQ answer。如此看来,显然这是一个常见问题。我尝试了他们推荐的音频编辑器,但还是不行。
所以,是时候请出大家伙了。我通过维基百科(Wikipedia)找到了一个简易的.wav格式手册,然后把我的Python解释器拿出来。经过一段时间的研究,我明白了问题的症结是由于程序在创建文件时仅仅是没有填充头部结构中的长度部分(length fields),所以我用了几步便手动恢复了那些文件,大致描述如下:
from struct import pack, unpack
wav_header = "4si4s4sihhiihh4si"
f = file(filename, 'rb+')
data = list(unpack(wav_header,f.read(44)))
data[0]=='RIFF'
data[2]=='W***E'
data[3]=='fmt '
data[4]==16
data[-2]=='data'
data[1]==data[-1]+36
f.seek(0,2)
filesize = f.tell()
datasize = filesize - 44
data[-1] = datasize
data[1] = datasize+36
f.seek(0)
f.write(pack(wav_header, *data))
f.close()
这样下来,文件就被完全恢复了。Yay!只可惜恢复后的录音文件质量还不很好,但是,据我所知,还没有什么Python做不到的事情呢。;-)
(原文链接网址:http://dirtsimple.org/2006/10/recovering-corrupted-wav-file-with.html)
Recovering a corrupted .wav file with Python
昨晚,由于与Skype配合使用的PowerGramo录音软件的崩溃,我在Procrastination Cure 研讨班上存储的录音都丢失了。幸运的是,一个与会人员还留有一点使用Gizmo***的录音,那是他们用来召集大家召开电话会议的。
郁闷的是,之所以他有两个录音是因为在研讨班上他的机器当掉了将近两个半小时的时间,所以第一个录音文件由于损坏而无法在Media Player中进行回放。我试了好几个音频编辑器来进行恢复,可是问题依旧。我在网上所找到唯一的用于恢复被损坏.wav文件的东西仅仅是Gizmo FAQ answer。如此看来,显然这是一个常见问题。我尝试了他们推荐的音频编辑器,但还是不行。
所以,是时候请出大家伙了。我通过维基百科(Wikipedia)找到了一个简易的.wav格式手册,然后把我的Python解释器拿出来。经过一段时间的研究,我明白了问题的症结是由于程序在创建文件时仅仅是没有填充头部结构中的长度部分(length fields),所以我用了几步便手动恢复了那些文件,大致描述如下:
from struct import pack, unpack
wav_header = "4si4s4sihhiihh4si"
f = file(filename, 'rb+')
data = list(unpack(wav_header,f.read(44)))
data[0]=='RIFF'
data[2]=='W***E'
data[3]=='fmt '
data[4]==16
data[-2]=='data'
data[1]==data[-1]+36
f.seek(0,2)
filesize = f.tell()
datasize = filesize - 44
data[-1] = datasize
data[1] = datasize+36
f.seek(0)
f.write(pack(wav_header, *data))
f.close()
这样下来,文件就被完全恢复了。Yay!只可惜恢复后的录音文件质量还不很好,但是,据我所知,还没有什么Python做不到的事情呢。;-)
(原文链接网址:http://dirtsimple.org/2006/10/recovering-corrupted-wav-file-with.html)
相关文章推荐
- Win7的硬盘损坏如何恢复不见文件
- oracle控制文件的损坏或完全丢失的恢复办法
- Linux下用python给某个目录下的wav文件创建相应的文本文件(标注文件)
- 如何恢复SQL Server 2000损坏的数据库文件
- 软件安装文件损坏如何恢复
- Oracle dmp文件损坏恢复案例
- 电子文件损坏应该怎么恢复
- Python 读取WAV音频文件 画频谱
- MySQL ibdata损坏或丢失 通过frm&ibd文件恢复数据
- SQL Server2000数据库文件损坏时如何恢复
- 文件不小心损坏了该如何恢复
- 控制文件损坏的恢复
- btrfs文件系统损坏恢复
- ARCHIVELOG模式下用户管理恢复联机重做日志文件—非活动组所有成员全部损坏
- SQL SERVER 数据文件损坏的恢复
- oracle用户管理的完全恢复6:控制文件损坏(控制文件前后内容改变)
- 电脑文件损坏无法找到怎么恢复
- 控制文件发生损坏,如何恢复
- 热备份---非系统数据文件损坏的恢复
- RAC OCR和Votedisk文件损坏恢复