音频处理

音频处理1.将不同音频文件格式进行转换的代码importsubprocess[subprocess是python中新增的一个模块,它允许你生成新的进程,连接到它们的input/output/error管道,并获取它们的返回状态码]infile='E:\兼职\caoen\caoen_jx_1_2

大家好,欢迎来到IT知识分享网。音频处理"

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://yundeesoft.com/32302.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信