运用python的两种方式_对Python使用mfcc的两种方式详解

对Python使用mfcc的两种方式详解

1、Librosa

import librosa

filepath = "/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav"

y,sr = librosa.load(filepath)

mfcc = librosa.feature.mfcc( y,sr,n_mfcc=13 )

返回结构为(13,None)的np.Array,None表示任意数量

2、python_speech_features

from python_speech_features import mfcc as pmfcc

filepath = "/Users/birenjianmo/Desktop/learn/librosa/mp3/in.wav"

(rate,sig) = wav.read(filepath)

amfcc = pmfcc( sig, rate ).T

返回结构为(None,13)的np.Array,通过 .T 可转为(13,None)

3、这两种方式的mfcc还是有明显的区别的,上面两个子图是从(1)Librosa得到的 mfcc[0] 和 mfcc[1],下面的是(2)python_speech_features得到的 amfcc[0] 和 amfcc[1]

以上这篇对Python使用mfcc的两种方式详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-01-06

本文实例为大家分享了梅尔倒谱系数实现代码,供大家参考,具体内容如下 """ @author: zoutai @file: mymfcc.py @time: 2018/03/26 @description: """ from matplotlib.colors import BoundaryNorm import librosa import librosa.display import numpy import scipy.io.wavfile

语音识别系统的第一步是进行特征提取,mfcc是描述短时功率谱包络的一种特征,在语音识别系统中被广泛应用. 一.mel滤波器 每一段语音信号被分为多帧,每帧信号都对应一个频谱(通过FFT变换实现),频谱表示频率与信号能量之间的关系.mel滤波器是指多个带通滤波器,在mel频率中带通滤波器的通带是等宽的,但在赫兹(Hertz)频谱内mel滤波器在低频处较密集切通带较窄,高频处较稀疏且通带较宽,旨在通过在较低频率处更具辨别性并且在较高频率处较少辨别性来模拟非线性人类耳朵对声音的感知. 赫兹频率和梅尔频

声音的本质是震动,震动的本质是位移关于时间的函数,波形文件(.wav)中记录了不同采样时刻的位移. 通过傅里叶变换,可以将时间域的声音函数分解为一系列不同频率的正弦函数的叠加,通过频率谱线的特殊分布,建立音频内容和文本的对应关系,以此作为模型训练的基础. 案例:画出语音信号的波形和频率分布,(freq.wav数据地址) # -*- encoding:utf-8 -*- import numpy as np import numpy.fft as nf import scipy.io.wavfil

在多数的现代语音识别系统中,人们都会用到频域特征.梅尔频率倒谱系数(MFCC),首先计算信号的功率谱,然后用滤波器和离散余弦变换的变换来提取特征.本文重点介绍如何提取MFCC特征. 首先创建有一个Python文件,并导入库文件:     from scipy.io import wavfile     from python_speech_features import mfcc, logfbank     import matplotlib.pylab as plt1.首先创建有一个Pytho

1.MFCC概述 在语音识别(Speech Recognition)和话者识别(Speaker Recognition)方面,最常用到的语音特征就是梅尔倒谱系数(Mel-scale FrequencyCepstral Coefficients,简称MFCC).根据人耳听觉机理的研究发现,人耳对不同频率的声波有不同的听觉敏感度.从200Hz到5000Hz的语音信号对语音的清晰度影响较大.两个响度不等的声音作用于人耳时,则响度较高的频率成分的存在会影响到对响度较低的频率成分的感受,使其变得不易察觉,

1.对语音数据归一化 如16000hz的数据,会将每个点/32768 2.计算窗函数:(*注意librosa中不进行预处理) 3.进行数据扩展填充,他进行的是镜像填充("reflect") 如原数据为 12345 -> 填充为4的,左右各填充4 即:5432123454321 即:5432-12345-4321 4.分帧 5.加窗:对每一帧进行加窗, 6.进行fft傅里叶变换 librosa中fft计算,可以使用.net中的System.Numerics MathNet.Nume

如下所示: def signal_xHz(A, fi, time_s, sample): return A * np.sin(np.linspace(0, fi * time_s * 2 * np.pi , sample* time_s)) A:为信号幅值 fi:为信号频率 time_s:为时间长度(s) sample:为信号采样频率 补充拓展:Python FFT合成波形实例 使用Python numpy模块带的FFT函数合成矩形波和方波,增加对离散傅里叶变换的理解. 导入模块 import

本文实例讲述了python统计文本字符串里单词出现频率的方法.分享给大家供大家参考.具体实现方法如下: # word frequency in a text # tested with Python24 vegaseat 25aug2005 # Chinese wisdom ... str1 = """Man who run in front of car, get tired. Man who run behind car, get exhausted."&quo

脉冲星假信号频率的相对路径论证. 首先看一下演示结果: 实例代码: import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation # Fixing random state for reproducibility np.random.seed(19680801) # Create new Figure with black background fig = plt.figur

给定一个可迭代sequence,对其中的值进行出现次数统计: 方法1: def get_counts(sequence): counts = {} for x in sequence: if x in counts: counts[x] += 1 else: counts[x] = 1 return counts 方法2: 利用python中内置的collections from collections import defaultdict def get_counts2(sequence):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值