首页 > 其他分享 >01形态音频转出文件

01形态音频转出文件

时间:2023-08-27 14:44:54浏览次数:29  
标签:bin 文件 01 音频 hex datause result mx wavfile

一长一短音频波形转成二进制,进一步转成十六进制,再写入文件中

import wave, codecs
import numpy as np

wavfile =  wave.open(u'music.wav',"rb")
params = wavfile.getparams()
nframes = params[3] # 采样点数
datawav = wavfile.readframes(nframes) # 读取音频,字符串格式
wavfile.close()
datause = np.fromstring(datawav, dtype = np.short) # 将字符串转化为短整型

result_bin, result_hex = '', ''
mx = 0
for i in range(len(datause) - 1):
    if datause[i] > mx:
        mx = datause[i]
    try:
        if(datause[i] < 0 and datause[i+1] >= 0):
            if (mx - 24000 > 0):
                result_bin += '1'
                mx = datause[i+1]
            else:
                result_bin += '0'
                mx = datause[i+1]
    except:
        break

for i in range(0, len(result_bin), 4):
    result_hex += hex(int(result_bin[i : i + 4], 2))[2:]

file_rar = open("result.txt","wb")
file_rar.write(codecs.decode(result_hex, 'hex_codec'))
file_rar.close()

 

标签:bin,文件,01,音频,hex,datause,result,mx,wavfile
From: https://www.cnblogs.com/willingyut/p/17660271.html

相关文章

  • tkinter文件管理
    以下是一个简单的tkinter实现文件管理的示例代码: ```pythonimporttkinterastkfromtkinterimportfiledialogimportos classFileManager:  def__init__(self,master):    self.master=master    self.master.title("文件管理器")  ......
  • 文件的所属用户和组
    文件默认的所属用户与组:通常情况下,文件的所有用户和组通常与文件创建者的用户和组相同。这意味着,当创建一个文件的时候,他的所有者和所有用户组数据当前用户。修改文件的所属用户和组:chown<用户>:<组><文件路径>; ......
  • P6302 [NOI2019] 回家路线 加强版
    P6302[NOI2019]回家路线加强版斜率优化好题。观察后猜想应该是dp。经过思考发现如果以点为状态,在时间这一维上是存在后效性的,而如果开二维数组\(f_{i,j}\)表示在第\(j\)个时刻到了\(i\)个点过不去加强版,考虑以列车为状态。题目有两个限制,一是出发点和结束点的限制,即......
  • struts2文件下载
    下载相对上传来说就要简单一点了,主要是使客户端获得服务器端的文件输入流,但是在配置Action时,还是有一些要注意的:1)result的type必须为stream类型 2)attachment表示不管什么类型的文件,都要弹出下载对话框,若不指定,则默认为内联形式,即inline,即浏览器能打开的就直接打开,不能打开的就提......
  • struts2文件上传
    上传文件其实分为两个步骤:首先,将客户端传递过来的文件保存到struts.multipart.saveDir键所指定的目录下,如果没有指定,那么就保存到javax.servlet.context.tempdir环境变量所指定的目录下,然后,Action中所定义的成员变量file,实际指向的是临时目录中的临时文件,在服务器通过IO的方式,将临......
  • Linux文件加密指南
    在工作和生活中为了安全考虑,通常会对一些重要文件进行加密备份或加密保存。在Linux中如何做到呢?本文将为你介绍在Linux中常见的加密文件的方法。01利用vim/vi加密优点:加密后,如果不知道密码,就看不到明文,包括root用户也看不了;缺点:很明显让别人知道加密了,容易让别人把加密的文件破......
  • vue中添加音频和视频
    视频播放功能1.安装vue-video-playernpminstallvue-video-player--save或yarnaddvue-video-player--save2.在main.js中全局引用importVueVideoPlayerfrom'vue-video-player'import'video.js/dist/video-js.css'import'vue-video-player/src/cu......
  • C#邮件带附件发送成功后附件文件不能及时删除,报错该进程无法访问路径“”,因为它正在被
    背景在做邮件发送因为附件file控件是动态产出的,在后台只能以httpfilecollection方式循环获取,因为IE和FireFox兼容问题,IE下File.FileName获取的是文件的全路径而在FireFox下就只能获取到文件名,导致Attachmentattchment=newAttachment(File.FileName);火狐下会出错,因为File.......
  • CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中
    CS0012:类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义。必须添加对程序集“System.Data.Entity,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”的引用。网址:yii666.com<网址:yii666.com处理办法,在web.config-》syst......
  • Java实现数据导出到excel文件
    Java实现数据导出到excel文件使用的依赖:Apache提供的poi包首先导入依赖<dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></dependency>核心实现//创建一个工作簿,也就是Excel......