如下所示:

'''''

add Head Infomation for pcm file

'''

import sys

import struct

import os

__author__ = 'bob_hu, hewitt924@gmail.com'

__date__ = 'Dec 19,2011'

__update__ = 'Dec 19,2011'

def geneHeadInfo(sampleRate,bits,sampleNum):

'''''

生成头信息,需要采样率,每个采样的位数,和整个wav的采样的字节数

'''

rHeadInfo = '\x52\x49\x46\x46'

fileLength = struct.pack('i',sampleNum + 36)

rHeadInfo += fileLength

rHeadInfo += '\x57\x41\x56\x45\x66\x6D\x74\x20\x10\x00\x00\x00\x01\x00\x01\x00'

rHeadInfo += struct.pack('i',sampleRate)

rHeadInfo += struct.pack('i',sampleRate * bits / 8)

rHeadInfo += '\x02\x00'

rHeadInfo += struct.pack('H',bits)

rHeadInfo += '\x64\x61\x74\x61'

rHeadInfo += struct.pack('i',sampleNum)

return rHeadInfo

if __name__ == '__main__':

if len(sys.argv) != 5:

print "usage: python %s inFile sampleRate bits outFile" % sys.argv[0]

sys.exit(1)

fout = open(sys.argv[4],'wb') #用二进制的写入模式

#fout.write(struct.pack('4s','\x66\x6D\x74\x20'))

#写入一个长度为4的串,这个串的二进制内容为 66 6D 74 20

#Riff_flag,afd,fad,afdd, = struct.unpack('4c',fin.read(4))

#读入四个字节,每一个都解析成一个字母

#open(sys.argv[4],'wb').write(struct.pack('4s','fmt '))

#将字符串解析成二进制后再写入

#open(sys.argv[4],'wb').write('\x3C\x9C\x00\x00\x57')

#直接写入二进制内容:3C 9C 00 00 57

#fout.write(struct.pack('i',6000)) #写入6000的二进制形式

#check whether inFile has head-Info

fin = open(sys.argv[1],'rb')

Riff_flag, = struct.unpack('4s',fin.read(4))

if Riff_flag == 'RIFF':

print "%s 有头信息" % sys.argv[1]

fin.close()

sys.exit(0)

else:

print "%s 没有头信息" % sys.argv[1]

fin.close()

#采样率

sampleRate = int(sys.argv[2])

#bit位

bits = int(sys.argv[3])

fin = open(sys.argv[1],'rb')

startPos = fin.tell()

fin.seek(0,os.SEEK_END)

endPos = fin.tell()

sampleNum = (endPos - startPos)

print sampleNum

headInfo = geneHeadInfo(sampleRate,bits,sampleNum)

fout.write(headInfo)

fin.seek(os.SEEK_SET)

fout.write(fin.read())

fin.close()

fout.close()

以上这篇python pcm音频添加头转成Wav格式文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

python pcm,python pcm音频添加头转成Wav格式文件的方法相关推荐

  1. python html转word文档_Python实现将HTML转换成doc格式文件的方法示例

    本文实例讲述了Python实现将HTML转换成doc格式文件的方法.分享给大家供大家参考,具体如下: 网页上的一些文章,因为有格式的原因,它们在网页上的源码都是带有html标签的,用css来进行描述. ...

  2. python将源代码转换成在html可显示的格式,Python实现将HTML转换成doc格式文件的方法示例...

    Python实现将HTML转换成doc格式文件的方法示例 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  Python实现将HTML转换成doc格式文件的方法示例. ...

  3. python修改文件格式为jpg_python将.ppm格式图片转换成.jpg格式文件的方法

    python将.ppm格式图片转换成.jpg格式文件的方法 将.ppm格式的图片转换成.jpg格式的图像,除了通过软件转换,还可以使用python脚本直接转换,so easy!!! from PIL ...

  4. kux格式怎么转换成mp3_把MP3格式的音频转换成WAV格式

    有时候工作中我们在处理音频的过程中,需要转换音频的格式,以便于更好的使用.例如,可能会要求把MP3格式的音频转换成其他的音频格式.这时候如何解决是一个问题.今天我就和大家介绍好用的音频转换器,可以快速 ...

  5. 把MP3格式的音频转换成WAV格式

    有时候工作中我们在处理音频的过程中,需要转换音频的格式,以便于更好的使用.例如,可能会要求把MP3格式的音频转换成其他的音频格式.这时候如何解决是一个问题.今天我就和大家介绍好用的音频转换器,可以快速 ...

  6. python用os.system打开wav文件_使用python读取wav格式文件

    ** 使用python读取wav格式文件 ** - 基本概念 [采样频率] 即取样频率, 指每秒钟取得声音样本的次数.采样频率越高,声音的质量也就越好,声音的还原也就越真实,但同时它占的资源比较多.由 ...

  7. 把python tkinter canvas中的图形图像保存为通用格式文件的5种方法

    在计算机上画图未完成,需要保存未完成图形以便以后继续,或者完成画图,要保存为通用格式文件,方便浏览.如使用python tkinter Canvas画图,其好像没有将图像保存通用格式文件的方法,但可以 ...

  8. python打包zip文件_python 解压文件,合并文件 打包成zip格式文件 生成MD5值

    #!/usr/bin/env python #_*_encoding:utf-8 # 2018/05/29 #augustyang #2.0 ''' 解压文件,合并文件 打包成zip格式文件 生成MD ...

  9. python下载大文件mp4_Python代码打开本地.mp4格式文件的方法

    Python代码打开本地.mp4格式文件的方法 想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件.我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放 ...

最新文章

  1. Python 文件与目录操作方法总结
  2. wps 模拟分析 规划求解_入行十年,我是如何解决模流分析准确性问题的
  3. 科大讯飞年报出炉,2018每天赚148万元,53%是政府补助
  4. 最近公共祖先 LCA Tarjan算法
  5. SQL Server 数据库优化文章
  6. python中的线程threading.Thread()使用
  7. 音视频技术开发周刊 68期
  8. Golang GOPATH 包
  9. Windows系统cmd命令检测dll文件
  10. 团队开发之个人博客一
  11. 解码器输出PSNR为0表示什么
  12. 拓扑排序:编译依赖问题
  13. FFT蝶形算法的verilog实现专题——FFT的matlab到verilog转化过程——第1部分
  14. 解决PHP "headers already sent"错误
  15. 计算机英语派生词和复合词,英语派生词归纳
  16. 微信公众平台开发入门
  17. 详解Node.js API系列 Module模块(2) 案例分析
  18. Cesium 热力图(可直接使用)
  19. the default discovery settings are unsuitable for production use; at least one of [discovery.seed_ho
  20. 微软宣布2011年4月发布Windows 7 SP1

热门文章

  1. 2020最新版SpringMVC面试题高频精选
  2. Linux进程终止命令kill或killall​笔记
  3. Chrome 调试技巧 1
  4. python画函数图像要用到的模块_教你如何绘制数学函数图像——numpy和matplotlib的简单应用...
  5. Android 第七课 4种基本布局之FrameLayout和百分比布局
  6. figma设计_如何在Figma中构建设计入门套件(第1部分)
  7. ux设计_为企业UX设计更好的数据表
  8. 钮扣电池电压电量_纽扣厂
  9. 洛谷 P1414 又是毕业季II (多个数的最大公因数)
  10. 执行yum:Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again...