python获取音频音量大小_音频响度分析和获取

该Python脚本使用ffmpeg工具分析音频的响度信息,包括整体响度(I, LUFS),阈值,响度范围(LRA),平均音量和最大音量。它提供获取单个音频文件和整个目录中音频文件响度信息的方法,并将结果写入CSV文件。" 78597740,4945259,Apache2.x代理模块详解与配置,"['Web服务器', 'Apache配置', '代理技术', 'HTTP代理', '负载均衡']
摘要由CSDN通过智能技术生成

# -*- coding: utf-8 -*-

#/usr/local/bin/python3

# @Time : 2020/3/7 4:05 PM

# @Author : eric

# @File : get_audio_loudness.py

# @Software: PyCharm

import os

import re

import subprocess

import sys

import csv

'''

说明:

Integrated loudness:

I(整体响度): -26.5 LUFS

Threshold: -37.1 LUFS

Loudness range:

LRA(整体范围): 10.2 LU

Threshold: -49.5 LUFS

LRA low: -36.9 LUFS

LRA high: -26.6 LUFS

mean_volume(平均音量): -32.2 dB

max_volume(最大音量): -18.9 dB

'''

'''

:param '/Users/yy/Documents/test_noise/agc/android_new/test_saopin_32bit.wav'

:return {'I': '-26.5', 'LRA': ' 10.2', 'Threshold': '-49.5', 'LRA_low': '-36.9', 'LRA_high': '-26.6', 'mean_volume': '-32.2', 'max_volume': '-18.9'}

# 音频整体响度/音量获取方法,输出文件

'''

def get_audio_loudness_by_file(audiofile):

lufs_I = r"\s+I:\s+([-+\s]\d+\.\d) LUFS"

lufs_Threshold = r"\s+Threshold:\s+([-+\s]\d+\.\d) LUFS"

lufs_LRA = r"\s+LRA:\s+([-+\s]\d+\.\d) LU"

luss_LRS_low = r"\s+LRA low:\s+([-+\s]\d+\.\d) LUFS"

luss_LRS_high = r"\s+LRA high:\s+([-+\s]\d+\.\d) LUFS"

mean_vo

Python中,你可以使用多种库来对音频文件进行分析处理。以下是一些常用的方法和步骤: 1. 读取音频文件: 使用`scipy.io.wavfile`模块可以读取WAV文件。其他格式的音频文件可以使用`pydub`或`audioread`库进行读取。 ```python import scipy.io.wavfile as wav sample_rate, data = wav.read('path/to/your/audio.wav') ``` 2. 音频文件的基本处理: 对音频数据进行基本处理,如格式转换、音量调整、剪切、合并等,可以使用`pydub`库。 ```python from pydub import AudioSegment # 加载音频文件 song = AudioSegment.from_file("path/to/your/audio.mp3") # 调整音量 new_song = song + 10 # 提高10dB # 导出处理后的音频 new_song.export("path/to/your/new_audio.mp3", format="mp3") ``` 3. 频谱分析: 使用`librosa`库可以对音频信号进行频谱分析获取频谱图等信息。 ```python import librosa # 加载音频文件 y, sr = librosa.load('path/to/your/audio.wav') # 计算频谱 D = librosa.stft(y) S_db = librosa.amplitude_to_db(abs(D)) # 绘制频谱图 import matplotlib.pyplot as plt plt.figure(figsize=(12, 4)) librosa.display.specshow(S_db, sr=sr, x_axis='time', y_axis='log') plt.colorbar(format='%+2.0f dB') plt.show() ``` 4. 音频特征提取: 提取音频的特征,如梅尔频率倒谱系数(MFCCs)、零交叉率、响度等,这在音频信号处理中非常常见。 ```python # 计算MFCC特征 mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13) ``` 5. 语音识别: 如果需要进行语音识别,可以使用如`SpeechRecognition`库。 ```python import speech_recognition as sr r = sr.Recognizer() with sr.AudioFile('path/to/your/audio.wav') as source: audio_data = r.record(source) # 使用Google的语音识别API进行识别 try: text = r.recognize_google(audio_data) print(text) except sr.UnknownValueError: print("Google Speech Recognition could not understand audio") except sr.RequestError as e: print(f"Could not request results from Google Speech Recognition service; {e}") ``` 这些步骤涵盖了从读取和基本处理,到复杂分析和特征提取,以及语音识别的整个过程。具体使用哪个库和方法取决于你的具体需求和音频格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值