最近一年忙于语音识别和声纹识别的创新、写作以及相关论文发表。

  并且创建了语音识别解码器微信群,想入群的读者可以留言加微信群。

  微信群里不乏国内外著名高校学者、语音研究员、语音识别工程师以及针对端到端语音识别解码的独特性,本人邀请了CV、NLP领域大佬们,期待各位留言入群。

  作者微信:zw76859420

好久没写博客了,今天更新一下使用Python提取声学模型的特征,一共三种特征,分别是MFCC、FABNK以及语谱图特征,直接上Python代码。

# -*- coding:utf-8 -*-
# author:zhangwei"""该脚本用于提取语音特征,包括MFCC、FBANK以及语谱图特征;该脚本是对标签数据进行处理;
"""from python_speech_features import mfcc, delta, logfbank
import wave
import numpy as np
from scipy.fftpack import fftdef read_wav_data(filename):'''获取文件数据以及采样频率;输入为文件位置,输出为wav文件数学表示和采样频率;'''wav = wave.open(filename, 'rb')num_frames = wav.getnframes()num_channels = wav.getnchannels()framerate = wav.getframerate()str_data = wav.readframes(num_frames)wav.close()wave_data = np.fromstring(str_data, dtype=np.short)wave_data.shape = -1, num_channelswave_data = wave_data.Treturn wave_data, frameratedef get_mfcc_feature(wavsignal, fs):'''输入为wav文件数学表示和采样频率,输出为语音的MFCC特征+一阶差分+二阶差分;'''feat_mfcc = mfcc(wavsignal, fs)print(feat_mfcc)feat_mfcc_d = delta(feat_mfcc, 2)feat_mfcc_dd = delta(feat_mfcc_d, 2)wav_feature = np.column_stack((feat_mfcc, feat_mfcc_d, feat_mfcc_dd))return wav_featuredef get_fbank_feature(wavsignal, fs):'''输入为wav文件数学表示和采样频率,输出为语音的FBANK特征+一阶差分+二阶差分;'''feat_fbank = logfbank(wavsignal, fs, nfilt=40)feat_fbank_d = delta(feat_fbank, 2)feat_fbank_dd = delta(feat_fbank_d, 2)wav_feature = np.column_stack((feat_fbank, feat_fbank_d, feat_fbank_dd))return wav_featuredef get_frequency_feature(wavsignal, fs):'''输入为wav文件数学表示和采样频率,输出为语谱图特征,特征维度是200;'''x = np.linspace(0, 400 - 1, 400, dtype=np.int64)w = 0.54 - 0.46 * np.cos(2 * np.pi * (x) / (400 - 1))time_window = 25wav_array = np.array(wavsignal)wav_length = wav_array.shape[1]first2end = int(len(wavsignal[0]) / fs * 1000 - time_window) // 10data_input = np.zeros(shape=[first2end, 200], dtype=np.float)for i in range(0, first2end):p_start = i * 160p_end = p_start + 400data_line = wav_array[0, p_start:p_end]data_line = data_line * wdata_line = np.abs(fft(data_line)) / wav_lengthdata_input[i] = data_line[0: 200]data_input = np.log(data_input)return data_inputdef get_wav_list(filepath):'''读取标签文件,并把标签文件与标签位置进行处理,输入为处理好的标签位置,输出为标签位置列表以及标签位置字典;'''list_wav = []dic_filelist = {}with open(filepath, 'r') as fr:lines = fr.readlines()for line in lines:res = line.strip().split(' ')dic_filelist[res[0]] = res[1]list_wav.append(res[0])return dic_filelist , list_wavdef get_wav_text(filename):'''输入为文件位置,输出为标签位置以及标签字典('D31_984': ['早稻', '播种', '和', '育秧', '的', '天气', '条件', '有利', '与否', '与', '这', '一', '期间', '的', '日', '平均', '温度', '阴雨', '日数', '密切', '相关'], 'D12_867':);'''dic_wav_list = {}list_text = []with open(filename ,'r') as fr:lines = fr.readlines()for line in lines:res = line.strip().split()list_text.append(res[0])dic_wav_list[res[0]] = res[1 :]return dic_wav_list , list_textif __name__ == '__main__':# filepath = 'D4_750.wav'filepath = '/home/zhangwei/PycharmProjects/ASR_MFCC/datalist/test.word.txt'# wavsignal, fs = read_wav_data(filepath)# a = get_mfcc_feature(wavsignal , fs)# b = get_fbank_feature(wavsignal , fs)# get_frequency_feature(wavsignal , fs)# get_wav_list(filepath)get_wav_text(filepath)
 

语音识别中特征提取MFCC、FBANK、语谱图特征提取相关推荐

  1. 【语音信号处理】1语音信号可视化——时域、频域、语谱图、MFCC详细思路与计算、差分

    基本语音信号处理操作入门 1. 数据获取 2. 语音信号可视化 2.1 时域特征 2.2 频域特征 2.3 语谱图 3. 倒谱分析 4. 梅尔系数 4.1 梅尔频率倒谱系数 4.2 Mel滤波器原理 ...

  2. waveform波形图(时域图)、spectrum(频谱图)、spectrogram(语谱图)、MFCC

    人的气流(excitation)通过声道到嘴唇产生声音.唇齿舌的形状决定了发出怎样的声音,这个形状通过频谱图中的包络中显示出来.而MFCCs就是一种准确描述这个包络的一种特征. 一.waveform波 ...

  3. 语谱图(二) Spectrogram 的产生

    1. 信号预处理部分 预处理部分中 包括 预加重 分帧 加窗 : 1.1 读取音频数据 python可以用librosa库来读取音频文件,但是对于MP3文件,它会自动调用audio_read函数,所以 ...

  4. 语音特征MFCC原理,谱图理解(谱图横轴坐标理解)

    链接为学习时发现的比较详细的讲解,方便自己以后翻阅所用 原理,如何一步步得到mfcc: 语音信号的梅尔频率倒谱系数(MFCC)的原理讲解及python实现 - 凌逆战 - 博客园 谱图讲解,语谱图来源 ...

  5. 语谱图(四) Mel spectrogram 梅尔语谱图

    1. 语谱图的产生 前文介绍了语谱图的产生 这里在简单小结如下, 信号预处理,预加重, 分帧, 加窗, 进行STFT 变换, 生成频谱图: 对单帧信号的频谱进行映射, (2,3 步骤如下图) 将映射后 ...

  6. python实现时频谱,语谱图,mel语谱倒谱等

    python实现时频谱,语谱图,mel语谱倒谱等 可以和理论相结合学习:https://blog.csdn.net/qq_36002089/article/details/108378796 语音信号 ...

  7. python求语音信号短时能量、短时过零率、语谱图

    python语音信号处理(二) 一.短时能量 短时能量主要用于区分浊音段和清音段,因为浊音时E(i)值比清音时大得多:区分声母与韵母的分界和无话段与有话段分界. 计算第i帧语音信号yi(n)的短时能量 ...

  8. 使用tensorflow和densenet神经网路实现语谱图声纹识别,即说话人识别。

    介绍 本文介绍一种使用tensorflow框架和densenet神经网路实现声纹语谱图识别算法,即说话人识别.本文侧重一种解决方案的思路,仅做了小批量数据的简单验证,收敛效果良好,还没有做大量数据集的 ...

  9. python画图标题为蓝色_python绘制语谱图怎么设置成黄蓝色

    展开全部 语音的时域分析和频32313133353236313431303231363533e59b9ee7ad9431333431333937域分析是语音分析的两种重要方法,但是都存在着局限性.时域 ...

  10. MATLAB实现实时录音,语音采集与读写用matlab实现录音以及语谱图的绘制.pdf

    <语音信号处理>仿真作业 院 系 电气与电子工程学院 专业班级 姓 名 学 号 指导教师 2020 年 3 月 作业题目:语音采集与读写 一.目的 (1)了解matlab 采集语音信号的原 ...

最新文章

  1. Android最佳性能实践(二)——分析内存的使用情况
  2. 初次了解node.js
  3. android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象
  4. 9206 1225 mybank系统 随堂笔记
  5. C#LeetCode刷题之#28-实现strStr()(Implement strStr())
  6. 使用lambda去重、map排序、按任意时间间隔(小时、半小时、分钟)进行结果统计
  7. NYOJ-邮票分你一半(dp)
  8. 一次性医用外科手套行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  9. MongoDB学习笔记~官方驱动的原生Curd操作
  10. 三维点云数据处理软件供技术原理说明_三维点云数据获取方法及获取系统与流程...
  11. 如何打造成功的数据归档策略
  12. java informix_Informix 数据库的数据类型
  13. 2018年AI和ML(NLP、计算机视觉、强化学习)技术总结和2019年趋势(上)...
  14. Rockchip 休眠唤醒 开发指南
  15. 安装配置Android Studio集成开发环境
  16. 【论文翻译】KDD19 -HeGAN: Adversarial Learning on Heterogeneous Information Networks 异构信息网络中的对抗学习
  17. R语言基础知识-学习笔记汇总
  18. Kafka| 下载与安装
  19. nginx限流以及配置管理
  20. 博傻理论(greater fool theory)

热门文章

  1. 记事本开发 dos下编译java 多个类文件_通过记事本编写的java代码通过()命令运行。_学小易找答案...
  2. android吸顶效果,RecyclerVIew实现悬浮吸顶效果
  3. 创建模式之工厂、工厂方法、抽象工厂与建造者(builder)
  4. 传奇架设好后,在登录游戏账号界面黑屏,并且中间有个小砖块,是什么情况?
  5. RW Utility工具使用介绍
  6. 洛谷 P5713 【深基3.例5】洛谷团队系统 C语言
  7. 基础SQL第无课---数据修改
  8. Openstack1 云计算与虚拟化概念
  9. 遇到问题---linux--crontab输出重定向不生效最全可能原因收集和解决
  10. Allegro如何给铜皮导弧操作详解