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

如下所示:

'''''

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格式文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持聚米学院。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ajax 页面无刷新

<!-- 使用原生Ajax 和 $.ajax 实现局部刷新的过程 --><!-- 封装通用XMLHttpRequest对象 --><!DOCTYPE html><html lang"en"><head> <meta charset"UTF-8"> <title>创建XMLHttpRequest</title> <style&…

javascript字符串方法总结

javascript中常用的字符串方法 String 的静态方法 fromCharCode&#xff1a;使用指定的Unicode值序列创建字符串 String.fromCharCode(num1, ..., numN) fromCodePoint: 使用指定的代码点序列创建的字符串 String.fromCharCode(num1, ..., numN) **注意**: 以上两个方法都是S…

php larval开发规范,数据模型 |《 Laravel 项目开发规范 5.5》| Laravel China 社区

本文档最新版为 7.x&#xff0c;旧版本可能放弃维护&#xff0c;推荐阅读最新版&#xff01;放置位置所有的数据模型文件&#xff0c;都 必须 存放在&#xff1a;app/Models/ 文件夹中。命名空间&#xff1a;namespace App\Models;User.phpLaravel 5.1 默认安装会把 User 模型存…

课程总结

大一的我初次学习JAVA&#xff0c;尽管以前也有所了解过但是还是觉得有点难&#xff0c;这个和c语言相似但是又有很多的不同&#xff0c;比如关键字什么的&#xff0c;一个学期下来现在回望真的感觉学到的并不是很多&#xff0c;可能是我上课的时候喜欢分神吧&#xff0c;尽管在…

记录工作中遇到的问题

只要在编程&#xff0c;遇到问题是肯定的&#xff0c;不过经常性遇到弱智的问题可就不太好了。把问题记录下来&#xff0c;提醒自己 问题 主机解析异常&#xff0c;内部多个系统&#xff0c;系统的登录需要从CAS中心得到登录信息&#xff0c;如果失败会提示登录失败。今天一直跳…

php7安装详解_,PHP7 redis扩展安装详解

1、安装redis(1)下载&#xff1a;https://github.com/phpredis/phpredis/tree/php7 或下载http://pan.baidu.com/s/1i5DFrjn用samba挂载导进去(2)yum -y install m4 autoconf # 安装依赖(3)unzip phpredis-php7.zip # 解压(4)cd ./phpredis-php7 # 进入目录(5)phpize #用php…

python之_init_函数的简介

1、每个package中都必须包含一个_init_.py文件除了不需要加载模块的 它方便在外部统一调用&#xff0c;和在内部互相调用&#xff0c;它可以为空&#xff0c;当为空时&#xff0c;作用是将这个文件夹下的内容当作包执行&#xff0c;便于解释器区分执行。 2、定义类的时候&#…

22. Generate Parentheses

题目描述&#xff1a; Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. For example, given n 3, a solution set is: ["((()))","(()())","(())()","()(())","()()…

php explain type等级,mysql中explain分析sql详解

Explain举例mysql> explain select * from event;—-————-——-——————————————————-| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |—-————-——-——————————————————-| 1 | SIMPL…

es6中的块级作用域

块级作用域 凡是带{}都是块级作用域&#xff0c;if(){} for(){} 对象{} 1.在块级作用域下&#xff0c;var 和function跟在window下一样&#xff0c; function有个特殊的一点&#xff0c;在块级作用域下会提前声明&#xff0c;不会提前定义 2.在块级作用域下 let和const声明的变…

Windows10安装Ubuntu子系统+docker教程说明

说明 微软和Ubuntu深入合作推出了基于win桌面运行Ubuntu系统.为了满足开发同学也在win下也可以使用ubuntu的开发环境.通过利用win上的Linux子系统Ubuntu16.04能否安装docker并正常使用 复制代码 首先在安装Ubuntu应用之前&#xff0c;我们要做一些事情&#xff0c;避免安装和使…

【HDU - 2612】Find a way(bfs)

-->Find a way 直接上Chinese Descriptions: hsj和lsh最近迷上了pokemon go的游戏。在双十一大物期中考试来临之前&#xff0c;他们想抓一只稀有土拨鼠来攒攒人品&#xff08;因为土拨鼠的刷新地点最近来到了哈工程&#xff09;但是由于土拨鼠过于强大&#xff0c;他的雷霆半…

getMeasuredWidth和getWidth的区别

View的getWidth()和getMeasuredWidth()有什么区别吗&#xff1f; View的高宽是由View本身和Parent容器共同决定的。getMeasuredWidth()和getWidth()分别对应于视图绘制的measure和layout阶段。getMeasuredWidth()获取的是View原始的大小&#xff0c;也就是这个View在XML文件中配…

php图片地址参数错误,图片上传时一直显示请求地址错误怎么办

1、出现“请求地址错误”的直接原因&#xff1a;图中$action null2.根本原因&#xff1a;url美化那一节课程&#xff0c;去掉 index.php的.htaccess 文件修改的时候&#xff0c;没有按照老师的来写&#xff0c;所以美化url以后获取不到地址栏参数&#xff0c;导致$action值为n…

C#写的WebServices可运行于树莓派

阅读目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器Raspkate项目演示回到目录Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器 最近在业余时间玩玩树莓派&#xff0c;刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚&#x…

[导入]Ms XmlDom 异步装载Xml文件

Ms XmlDom 异步装载Xml文件文章来源:http://blog.csdn.net/net_lover/archive/2004/07/07/36015.aspx 转载于:https://www.cnblogs.com/zhaoxiaoyang2/archive/2004/07/07/816151.html

Django的View(视图)

Django的View&#xff08;视图&#xff09; 一个视图函数&#xff08;类&#xff09;&#xff0c;简称视图&#xff0c;是一个简单的Python 函数&#xff08;类&#xff09;&#xff0c;它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容&#xff0c;一个重定向&am…

高质量的期货研究报告去哪里找?

作者&#xff1a;虎虎的小尾巴链接&#xff1a;https://www.zhihu.com/question/25331621/answer/205439281来源&#xff1a;知乎著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。这是个好问题&#xff0c;我曾经或者直到现在我也一直在追求高…

oracle中偏移,怎么对相同的坐标点偏移?

上面说的第三步必须保证每个点不能重复分配&#xff0c;有些难度&#xff0c;还是用过程代码吧。CREATE TABLE t_offset asselect 1 id,1.001 x,1.002 y, 10 mark from dualunion allselect 2011 id,1.001 x,1.012 y, 31 mark from dualunion allselect 3…

设计模式之--原型模式

1.原型模式定义 原型模式非常简单&#xff0c;定义如下&#xff1a; 用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象 2.通用类图 原型模式的核心是实现Cloneable接口&#xff0c;此接口为JDK提供的一个标识接口&#xff0c;只有实现了此接口的类才…