福州网站建设资讯,养老保险怎么买最划算,WordPress图片资源404,建设工程施工合同最新版本在处理音频样本时#xff0c;往往我们的音频样本由于录制设备#xff0c;环境#xff0c;人发音的音量大小的不同影响#xff0c;会造成音频响度不统一#xff0c;分布在一个不同的响度值域上。为了让语音模型更好的学习音频特征#xff0c;就有必要对音频的响度进行归一… 在处理音频样本时往往我们的音频样本由于录制设备环境人发音的音量大小的不同影响会造成音频响度不统一分布在一个不同的响度值域上。为了让语音模型更好的学习音频特征就有必要对音频的响度进行归一化处理控制在一定的响度值域。
代码实现如下
# -*- coding: utf-8 -*-
# date:2024
# Author: DataBall
# function: 音频响度归一化import librosa
import soundfile as sf
import pyloudnorm as pyln
import numpy as npdef get_audio_loudness(voice,sr):# 计算音频的响度以分贝为单位meter pyln.Meter(sr)loudness meter.integrated_loudness(voice)return loudness
def change_audio_loudness(voice,sr,origin_loudness,target_loudness,path_out):# 归一化音频到目标响度normalized_wav pyln.normalize.loudness(voice,origin_loudness,target_loudness)# 如果归一化后的音频振幅超过1需要进一步归一化if np.abs(normalized_wav).max() 1.0:normalized_wav normalized_wav / np.abs(normalized_wav).max()# 保存归一化后的音频sf.write(path_out, normalized_wav, sr)print(保存归一化后的音频:{}.format(path_out))if __name__ __main__:path_audio_origin audio/m_16.wavy, sr librosa.load(path_audio_origin, srNone) # 加载音频文件,返回音频数据和采样率print(音频采样率{}.format(sr))origin_loudness get_audio_loudness(y,sr)print(原音频响度 : {:.5f}.format(origin_loudness))target_loudness -20 # 目标响度path_audio_out audio/normalized_audio.wavchange_audio_loudness(y,sr,origin_loudness,target_loudness,path_audio_out)#---------------------- 读取修改后的音频的响度信息y2, sr2 librosa.load(path_audio_out, srNone)loudness2 get_audio_loudness(y2,sr2)print(调整后音频响度 loudness: {:.5f}.format(loudness2))对于的运行log如下
音频采样率16000
原音频响度 : -35.06912
保存归一化后的音频:audio/normalized_audio.wav
调整后音频响度 loudness: -20.00000
助力快速掌握数据集的信息和使用方式。
数据也可如此美好