码迷,mamicode.com
首页 > 其他好文 > 详细

音频处理

时间:2018-11-01 22:40:12      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:拼接   文件路径   ams   一个   字节   执行   音频处理   数据   file   

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("程序终止")

音频处理

标签:拼接   文件路径   ams   一个   字节   执行   音频处理   数据   file   

原文地址:https://www.cnblogs.com/yr-number1/p/9892546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!