c语言梅尔谱图,梅尔倒谱系数(MFCC)实现

本文介绍了使用Python中的librosa库和相关库来处理音频信号,实现C语言梅尔谱图的绘制以及梅尔倒谱系数(MFCC)的计算过程。包括音频读取、预加重、加汉明窗、傅里叶变换、滤波器组、MFCC计算和均值化等步骤。
摘要由CSDN通过智能技术生成

"""

@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

from scipy.fftpack import dct

import matplotlib.pyplot as plt

import numpy as np

# 第一步-读取音频,画出时域图(采样率-幅度)

sample_rate, signal = scipy.io.wavfile.read('OSR_us_000_0010_8k.wav') # File assumed to be in the same directory

signal = signal[0:int(3.5 * sample_rate)]

# plot the wave

time = np.arange(0,len(signal))*(1.0 / sample_rate)

# plt.plot(time,signal)

plt.xlabel("Time(s)")

plt.ylabel("Amplitude")

plt.title("Signal in the Time Domain ")

plt.grid('on')#标尺,on:有,off:无。

# 第二步-预加重

# 消除高频信号。因为高频信号往往都是相似的,

# 通过前后时间相减,就可以近乎抹去高频信号,留下低频信号。

# 原理:y(t)=x(t)−αx(t−1)

pre_emphasis = 0.97

emphasized_signal = numpy.append(signal[0], signal[1:] - pre_emphasis * signal[:-1])

time = np.arange(0,len(emphasized_signal))*(1.0 / sample_rate)

# plt.plot(time,emphasized_signal)

# plt.xlabel("Time(s)")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值