0. 说明

参考https://www.cnblogs.com/LXP-Never/p/11561355.html

谢谢作者~

audio_hjk2是我用来提取PPG+mel+mfcc+linear的标准

Rayhane是Tacotron合成效果比较好的标准

看看Rayhane和PPG标准是否一样

1. PPG标准/audio_hjk2

(具体对比在2. Rayhane的超参那里)

# 超参数个数:16

hparams = {

'sample_rate': 16000,

'preemphasis': 0.97,

'n_fft': 400,

'hop_length': 160,

'win_length': 400,

'num_mels': 80,

'n_mfcc': 13,

'window': 'hann',

'fmin': 30.,

'fmax': 7600.,

'ref_db': 20,

'min_db': -80.0,

'griffin_lim_power': 1.5,

'griffin_lim_iterations': 60,

'silence_db': -28.0,

'center': True, # 不知道为什么提取ppg要是True

}

# 问题:
# fmin和fmax到底有什么用,目前mfcc的fmin=0,fmax=none;mel的fmin=30,fmax=7600;spec又没有限制。所以怎么办?
# 以后只用power谱了,统一起来,都用stft之后先算平方,然后转换log后乘以10,但是其实不懂区别,哪一个更好?
# Griffinlim超参数临时使用1.2和80,区别在哪里?
# 取log的时候,浮点数(power值)统一加上了1e-5
# min_db没有详细统计,直接用的-80
# 户建坤-hujk17为了理解长河10ms版本cbhg-ppg代码进行了一次梳理,抄写的。2020-10-14-16-13import librosa
import numpy as np
from scipy.io import wavfile
from scipy import signal
from scipy.fftpack import dct
import matplotlib.pyplot as plt# 超参数个数:16
hparams = {'sample_rate': 16000,'preemphasis': 0.97,'n_fft': 400,'hop_length': 160,'win_length': 400,'num_mels': 80,'n_mfcc': 13,'window': 'hann','fmin': 30.,'fmax': 7600.,'ref_db': 20,  'min_db': -80.0,  'griffin_lim_power': 1.5,'griffin_lim_iterations': 60,  'silence_db': -28.0,'center': True, # 不知道为什么提取ppg要是True
}_mel_basis = None
_inv_mel_basis = None# 超参数个数:1
def load_wav(wav_f, sr = hparams['sample_rate']):wav_arr, _ = librosa.load(wav_f, sr=sr)return wav_arr# 超参数个数:1
def write_wav(write_path, wav_arr, sr = hparams['sample_rate']):wav_arr *= 32767 / max(0.01, np.max(np.abs(wav_arr)))wavfile.write(write_path, sr, wav_arr.astype(np.int16))return# 超参数个数:1
def split_wav(wav_arr, top_db = -hparams['silence_db']):intervals = librosa.effects.split(wav_arr, top_db=top_db)return intervals# 超参数个数:12
def wav2unnormalized_mfcc(wav_arr, sr=hparams['sample_rate'], preemphasis=hparams['preemphasis'],n_fft=hparams['n_fft'], hop_len=hparams['hop_length'],win_len=hparams['win_length'], num_mels=hparams['num_mels'], n_mfcc=hparams['n_mfcc'], window=hparams['window'],fmin=0.0,fmax=None, ref_db=hparams['ref_db'],center=hparams['center']):emph_wav_arr = _preempahsis(wav_arr, pre_param=preemphasis)power_spec = _power_spec(emph_wav_arr, n_fft=n_fft, hop_len=hop_len, win_len=win_len, window=window, center=center)power_mel = _power_spec2power_mel(power_spec, sr=sr, n_fft=n_fft, num_mels=num_mels, fmin=fmin, fmax=fmax)db_mel = _power2db(power_mel, ref_db=ref_db)# 没有进行normmfcc = dct(x=db_mel.T, axis=0, type=2, norm='ortho')[:n_mfcc]deltas = librosa.feature.delta(mfcc)delta_deltas = librosa.feature.delta(mfcc, order=2)mfcc_feature = np.concatenate((mfcc, deltas, delta_deltas), axis=0)return mfcc_feature.T# 超参数个数:12
def wav2normalized_db_mel(wav_arr, sr=hparams['sample_rate'], preemphasis=hparams['preemphasis'],n_fft=hparams['n_fft'], hop_len=hparams['hop_length'],win_len=hparams['win_length'], num_mels=hparams['num_mels'], window=hparams['window'],fmin=hparams['fmin'],fmax=hparams['fmax'], ref_db=hparams['ref_db'], min_db=hparams['min_db'],center=hparams['center']):emph_wav_arr = _preempahsis(wav_arr, pre_param=preemphasis)power_spec = _power_spec(emph_wav_arr, n_fft=n_fft, hop_len=hop_len, win_len=win_len, window=window, center=center) # (time, n_fft/2+1)power_mel = _power_spec2power_mel(power_spec, sr=sr, n_fft=n_fft, num_mels=num_mels, fmin=fmin, fmax=fmax)db_mel = _power2db(power_mel, ref_db=ref_db)normalized_db_mel = _db_normalize(db_mel, min_db=min_db)return normalized_db_mel# 超参数个数:9
def wav2normalized_db_spec(wav_arr, sr=hparams['sample_rate'], preemphasis=hparams['preemphasis'],n_fft=hparams['n_fft'], hop_len=hparams['hop_length'],

声学参数-MELMFCC-RayhanePPG_hjk2标准: PPG项目audio_hjk2处理wav文件对比Tacotron-Rayhane的audio处理相关推荐

  1. 声学参数-基频-Librosa标准: 基频的文字定义和用librosa提取wav文件基频

    0. 说明 提取wav的基频, 保持同样的超参, 所以用librosa 参考: https://www.jianshu.com/p/ac1444495f75 https://www.cnblogs.c ...

  2. uipath sequence传递参数_多孔材料测试及声学参数识别(中)_多孔材料声学参数正向识别...

    1. 多孔材料关键的声学参数介绍 现代研究表明,常规多孔材料的吸声参数可以用静流阻率.孔隙率.曲折因子,形状因子.热特征尺寸.粘性特征尺寸等.因为大多数多孔材料可以看作是孔的组合,因此这些参数多与孔有 ...

  3. 联诚发召开宝安区卓越绩效管理标准实施项目启动大会

    1月29日,为贯彻落实全面实施绩效管理要求,推动公司可持续发展,追求卓越.实现卓越目标,联诚发在深圳总部成功召开宝安区卓越绩效管理标准实施项目启动大会.联诚发创始人兼总裁龙平芳.运营副总谢晋和各部门主 ...

  4. 联诚发顺利完成宝安区卓越绩效管理标准实施项目现场评审

    3月30日,联诚发顺利完成2021年宝安区卓越绩效管理标准实施项目现场评审,宝安市场监管局宁奉平副科长带领评审专家梁赞.王保平.曾朝东.洪金城一行莅临联诚发总部考核指导,听取我司宝安区卓越绩效管理标准 ...

  5. UL认证-灯具产品UL1598标准测试项目有哪些?

    UL认证介绍 UL认证在美国属于非强制性认证,主要是产品安全性能方面的检测和认证,其认证范围不包含产品的 EMC(电磁兼容)特性. UL是一个独立的.非营利的.为公共安全做试验的专业机构.UL始建于1 ...

  6. c 自动生成html文件,webpack4系列教程(三):自动生成项目中的HTML文件

    1. webpack中的CommonJS和ES Mudule 规范 1.1 CommonJs规范 CommonJs规范的出发点:JS没有模块系统.标准库较少.缺乏包管理工具:为了让JS可以在任何地方运 ...

  7. Maven学习总结(十一)——Maven项目对象模型pom.xml文件详解

    2019独角兽企业重金招聘Python工程师标准>>> <project xmlns="http://maven.apache.org/POM/4.0.0" ...

  8. python内置标准库不可以处理的文件是_精华 | 140种Python标准库、第三方库和外部工具都有了...

    原标题:精华 | 140种Python标准库.第三方库和外部工具都有了 作者 | 宋天龙 来源 | 大数据(ID:hzdashuju) [导读]Python数据工具箱涵盖从数据源到数据可视化的完整流程 ...

  9. VSCode使用clangd插件找不到项目自己的头文件解决总结

    如题,最近在编译一个c++项目,本来项目是visual studio的,但是我不想用这个ide来编写代码,因为有些操作感觉特别别扭,我自己已经把vscode的环境搭好了,所以就把项目转到vscode加 ...

最新文章

  1. Nginx配置反向代理,一篇搞定!
  2. C++中的友元函数friend
  3. PyTorch深度学习
  4. RenderMonkey基本使用方法
  5. Android NDK JNI开发3
  6. Py之pyquery:pyquery的简介、安装、使用方法之详细攻略
  7. matlab求矩阵中值函数,matlab在一个函数里,如何调用另一个函数里面求得的雅可比矩阵并赋值?...
  8. java实现自动登录,并获取数据
  9. keras——基于神经网络的风格迁移生成艺术字
  10. 信创产业已成现象级新风口 代码“源头”安全该如何守护?
  11. MySQL学习笔记十七:复制特性
  12. python如何避免访问对象不存在的属性_Python3基础 setattr 设置对象的属性值,如果属性不存在就创建一个...
  13. 基于JAVA影院网上售票系统演示录像计算机毕业设计源码+系统+数据库+lw文档+部署
  14. css绘制卡券优惠券_如何使用css创建一个优惠券
  15. 数字化名词解释—数字化转型
  16. JavaScript运算规则
  17. win7计算机怎么找管理员,win7如何获得管理员权限?
  18. PTA-C理论B类题库6-3使用函数求最大公约数(辗转相除法的实现)
  19. 自媒体全是带节奏的标题党,不是创作者不行,而是用户们想看
  20. 洋酒销售系统的设计与实现

热门文章

  1. Log Forging漏洞
  2. Python QQ窗口隐藏显示
  3. 概率论与数理统计学习笔记——第三十一讲——方差的性质
  4. 巨杉数据库V5.2 发布会 学习笔记
  5. Ubuntu make
  6. Taffy自动化测试框架Web开发,Python Flask实践详解
  7. 入门级对数几率回归算法
  8. 给孩子报名线上和线下的少儿英语培训哪个好?
  9. 2021查询高考成绩时间是多久,2021每年高考出成绩时间 考完多久出成绩
  10. I wanna follow my heart