音频处理

1.将不同音频文件格式进行转换的代码
import subprocess[subprocess是python中新增的一个模块,它允许你生成新的进程,连接到它们的input/output/error管道,并获取它们的返回状态码]
infile = 'E:\兼职\caoen\caoen_jx_1_20_5.m4a' #要进行转换的音频文件
outfile = 'E:\兼职\caoen_jx_1_20_5.wav' #生成的音频文件
subprocess.call(['ffmpeg', '-i', infile, outfile])[这个方法的作用是执行一些命令行的命令,例如sh xxx.sh,java -jar xxx.jar等]会开启一个子进程去执行,并且等待子进程结束才继续执行其他的,使用
起来非常方便,就是需要注意一些小细节]

参数
-i “文件的名称” (输入文件是和ffmpeg在同一目录下的文件,可以自己加路径,改名字)


2.读取文件中的音频文件并进行MD5值,查看音频文件是否内容一样

import os
import wave
import hashlib

filepath = "E:\FFOutput" # 添加路径
filename = os.listdir(filepath) # 得到文件夹下的所有文件名称
list = [] #将获取的md5值依次放入到列表中
Aname = [] #将从文件路径下获取的文件名称和路径依次和md5值相对应的放在一起
for file in filename:
a = filepath + "\\"+file #将路径和文件名称拼接在一起
Aname.append(a)
f = wave.open(a,"rb") #使用wave.open 打开wav文件
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 声道数 量化位数 采样频率 采样点数
# print(nchannels)
# print(sampwidth)
# print(framerate)
# print(nframes)
str_data = f.readframes(nframes) #读取音频,字符串格式也有的解释为读取波形数据
#str_data会返回一段字节
# m = hashlib.new('md5')
m = hashlib.md5() #c创建MD5对象
m.update(str_data) #传入需要加密的字符串进行MD5加密
b = m.hexdigest() #获取到需要的经过加密的MD5字符串
list.append(b)
c = len(list)

for i in range(0,c):
if list[i] in list[i+1:]:
print(Aname[i])
f.close()
print("程序终止")

3.计算音频的时间长度

 import wave

import contextlib

fname = '/tmp/test.wav'

with contextlib.closing(wave.open(fname,'r')) as f:

 frames = f.getnframes() rate = f.getframerate() duration = frames / float(rate) print(duration)

转载于:https://www.cnblogs.com/yr-number1/p/9892546.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值