最近学习语音情感识别,需要提取语音特征,用到python_speech_features这个库,顺便把文档翻译一下,希望能帮到需要的人。英语水平不高,难免有错,敬请指正

欢迎来到python_speech_features的文档!

这个库提供了一般的用于ASR(语音识别)的语音特征,他包含了MFCCs(梅尔倒谱系数)和  filterbank energies(滤波器组能量?)。如果你还不知道什么是MFCCs,并且想要更多的了解MFCC,这里有一个教程:http://www.practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/

你需要numpy和scipy来运行这个库,这个项目的代码保存在https://github.com/jameslyons/python_speech_features

支持的特征:

  • python_speech_features.mfcc() - 梅尔倒谱系数
  • python_speech_features.fbank() - 滤波器组能量(?)
  • python_speech_features.logfbank() - 对数滤波器组能量
  • python_speech_features.ssc() - 子带频谱质心特征

使用MFCC特征:

from python_speech_features import mfcc
from python_speech_features import logfbank
import scipy.io.wavfile as wav(rate,sig) = wav.read("file.wav")
mfcc_feat = mfcc(sig,rate)
fbank_feat = logfbank(sig,rate)print(fbank_feat[1:3,:])

从这里你可以把特征写入一个文件

python_speech_features模块提供的函数

python_speech_features.base.mfcc(signal, samplerate=16000, winlen=0.025, winstep=0.01, numcep=13, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, ceplifter=22, appendEnergy=True, winfunc=<function <lambda>>)

计算一个音频信号的MFCC特征

参数:

  • signal - 需要用来计算特征的音频信号,应该是一个N*1的数组
  • samplerate - 我们用来工作的信号的采样率
  • winlen - 分析窗口的长度,按秒计,默认0.025s(25ms)
  • winstep - 连续窗口之间的步长,按秒计,默认0.01s(10ms)
  • numcep - 倒频谱返回的数量,默认13
  • nfilt - 滤波器组的滤波器数量,默认26
  • nfft - FFT的大小,默认512
  • lowfreq - 梅尔滤波器的最低边缘,单位赫兹,默认为0
  • highfreq - 梅尔滤波器的最高边缘,单位赫兹,默认为采样率/2
  • preemph - 应用预加重过滤器和预加重过滤器的系数,0表示没有过滤器,默认0.97
  • ceplifter - 将升降器应用于最终的倒谱系数。 0没有升降机。默认值为22。
  • appendEnergy - 如果是true,则将第0个倒谱系数替换为总帧能量的对数。
  • winfunc - 分析窗口应用于每个框架。 默认情况下不应用任何窗口。 你可以在这里使用numpy窗口函数 例如:winfunc=numpy.hamming

返回:  一个大小为numcep的numpy数组,包含着特征,每一行都包含一个特征向量。

python_speech_features.base.fbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

从一个音频信号中计算梅尔滤波器能量特征

参数:

  • signal - 需要用来计算特征的音频信号,应该是一个N*1的数组
  • samplerate - 我们用来工作的信号的采样率
  • winlen - 分析窗口的长度,按秒计,默认0.025s(25ms)
  • winstep - 连续窗口之间的步长,按秒计,默认0.01s(10ms)
  • nfilt - 滤波器组的滤波器数量,默认26
  • nfft - FFT的大小,默认512
  • lowfreq - 梅尔滤波器的最低边缘,单位赫兹,默认为0
  • highfreq - 梅尔滤波器的最高边缘,单位赫兹,默认为采样率/2
  • preemph - 应用预加重过滤器和预加重过滤器的系数,0表示没有过滤器,默认0.97
  • winfunc - 分析窗口应用于每个框架。 默认情况下不应用任何窗口。 你可以在这里使用numpy窗口函数 例如:winfunc=numpy.hamming

返回:2个值。第一个是一个包含着特征的大小为nfilt的numpy数组,每一行都有一个特征向量。第二个返回值是每一帧的能量

python_speech_features.base.logfbank(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97)

从一个音频信号中计算梅尔滤波器能量特征的对数

参数:

  • signal - 需要用来计算特征的音频信号,应该是一个N*1的数组
  • samplerate - 我们用来工作的信号的采样率
  • winlen - 分析窗口的长度,按秒计,默认0.025s(25ms)
  • winstep - 连续窗口之间的步长,按秒计,默认0.01s(10ms)
  • nfilt - 滤波器组的滤波器数量,默认26
  • nfft - FFT的大小,默认512
  • lowfreq - 梅尔滤波器的最低边缘,单位赫兹,默认为0
  • highfreq - 梅尔滤波器的最高边缘,单位赫兹,默认为采样率/2
  • preemph - 应用预加重过滤器和预加重过滤器的系数,0表示没有过滤器,默认0.97

返回: 一个包含特征的大小为nfilt的numpy数组,每一行都有一个特征向量

python_speech_features.base.ssc(signal, samplerate=16000, winlen=0.025, winstep=0.01, nfilt=26, nfft=512, lowfreq=0, highfreq=None, preemph=0.97, winfunc=<function <lambda>>)

从一个音频信号中计算子带频谱质心特征

参数:

  • signal - 需要用来计算特征的音频信号,应该是一个N*1的数组
  • samplerate - 我们用来工作的信号的采样率
  • winlen - 分析窗口的长度,按秒计,默认0.025s(25ms)
  • winstep - 连续窗口之间的步长,按秒计,默认0.01s(10ms)
  • nfilt - 滤波器组的滤波器数量,默认26
  • nfft - FFT的大小,默认512
  • lowfreq - 梅尔滤波器的最低边缘,单位赫兹,默认为0
  • highfreq - 梅尔滤波器的最高边缘,单位赫兹,默认为采样率/2
  • preemph - 应用预加重过滤器和预加重过滤器的系数,0表示没有过滤器,默认0.97
  • winfunc - 分析窗口应用于每个框架。 默认情况下不应用任何窗口。 你可以在这里使用numpy窗口函数 例如:winfunc=numpy.hamming

返回:一个包含特征的大小为nfilt的numpy数组,每一行都有一个特征向量

python_speech_features.base.hz2mel(hz)

把一个赫兹值转换为梅尔值

参数: hz - 一个单位为Hz的值,他也可以是一个numpy数组,转换按元素进行

返回: 一个单位为Mels的值,如果输入时矩阵,那么返回的也是对应大小的矩阵

python_speech_features.base.mel2hz(mel)

把一个梅尔值转化为赫兹

参数: mel - 一个单位为Mels的值,他也可以是一个numpy数组,转换按元素进行

返回: 一个单位为Herz的值,如果输入时矩阵,那么返回的也是对应大小的矩阵

python_speech_features.base.get_filterbanks(nfilt=20, nfft=512, samplerate=16000, lowfreq=0, highfreq=None)

计算一个梅尔滤波器组。过滤器存储在行中,列对应于FFT箱。过滤器以大小为nfilt *(nfft/2+1)的数组返回。

参数:

  • nfilt - 滤波器组的滤波器数量,默认20
  • nfft - FFT的大小,默认512
  • samplerate - 我们用来工作的信号的采样率
  • lowfreq - 梅尔滤波器的最低边缘,单位赫兹,默认为0
  • highfreq - 梅尔滤波器的最高边缘,单位赫兹,默认为采样率/2

返回: 一个包含有滤波器的大小为nfilt *(nfft/2+1)的数组,每一行都有一个过滤器。

python_speech_features.base.lifter(cepstra, L=22)

将倒谱提升器应用于倒频谱的矩阵。这具有增加高频DCT系数的幅度的效果。

参数:

  • cepstra -- 梅尔倒谱矩阵,大小为numframes*numcep
  • L - 提升器的系数,默认22,L<=0禁用

python_speech_features.base.delta(feat, N)

从特征向量序列计算delta特征。

参数:

  • feat - 一个大小为特征数量的numpy数组,每一行都有一个特征向量
  • N - 对于每一帧,计算delta特征根据前后N帧

返回:一个大小为特征数量的numpy数组,包含有delta特征,每一行都有一个delta向量

sigproc模块提供的函数

python_speech_features.sigproc.framesig(sig, frame_len, frame_step, winfunc=<function <lambda>>, stride_trick=True)

将信号框成重叠帧。

参数:

  • sig - 音频信号帧
  • frame_len - 样品中每一帧的长度
  • frame_step - 下一帧开始后前一帧开始后的样本数。
  • winfunc - 分析窗口应用于每个框架。 默认情况下不应用任何窗口。
  • stride_trick - 使用步长技巧快速计算滚动窗口和窗口倍增

返回:一个帧的数组,大小是frame_len

python_speech_features.sigproc.deframesig(frames, siglen, frame_len, frame_step, winfunc=<function <lambda>>)

使用重叠添加过程撤消了frameig操作。

参数:

  • frames - frames的数组
  • siglen - 所需信号的长度,如果未知,则使用0。输出将被截断到siglen样本。
  • frame_len - 样品中每一帧的长度
  • frame_step - 下一帧开始后前一帧开始后的样本数。
  • winfunc - 分析窗口应用于每个框架。 默认情况下不应用任何窗口。

返回: 一个1维信号

python_speech_features.sigproc.magspec(frames, NFFT)

计算帧中每个帧的幅度谱。如果帧是NxD矩阵,输出将是Nx(NFFT/2+1)。

参数:

  • frames - frames的数组,每一行就是一帧
  • NFFT - 使用的FFT长度。如果NFFT>帧长度,帧就是零填充的。

返回:如果帧是N*D矩阵,输出将是N*(nfft/2+1)。每一行都是相应帧的幅度谱。

python_speech_features.sigproc.powspec(frames, NFFT)

计算帧中每个帧的功率谱。如果帧是NXD矩阵,输出将是NX(NFFT/2+1)。

参数:

  • frames - frames的数组,每一行就是一帧
  • NFFT - 使用的FFT长度。如果NFFT>帧长度,帧就是零填充的。

返回:如果帧是N*D矩阵,输出将是N*(nfft/2+1)。每一行都是相应帧的功率谱。

python_speech_features.sigproc.logpowspec(frames, NFFT, norm=1)

计算帧中每个帧的对数功率谱。如果帧是NXD矩阵,输出将是NX(NFFT/2+1)。

参数:

  • frames - frames的数组,每一行就是一帧
  • NFFT - 使用的FFT长度。如果NFFT>帧长度,帧就是零填充的。
  • norm - 如果范数=1,则对数功率谱被归一化,使得最大值(跨越所有帧)为0。

返回:如果帧是N*D矩阵,输出将是N*(nfft/2+1)。每一行都是相应帧的对数功率谱。

python_speech_features.sigproc.preemphasis(signal, coeff=0.95)

对输入信号进行预加重。

参数:

  • signal - 过滤器的信号
  • coeff - 预加重系数,0为无,默认0.95

返回:滤波后的信号

python_speech_features文档翻译相关推荐

  1. 【iOS官方文档翻译】iOS蓝牙的基本概念

    之前写了[iOS官方文档翻译]iOS的蓝牙连接.数据接收及发送一文,介绍了怎样进行蓝牙通讯,但是很多基本概念没有进行解释,看起来可能有点吃力,所以现在再翻译一篇苹果对官方蓝牙4.0一些基本概念介绍的文 ...

  2. Sencha-概念-Layouts(布局)(官网文档翻译8)

    Sencha-概念-Layouts(布局)(官网文档翻译8) 介绍和HBox 布局描述了在您的应用程序的组件的大小和位置.例如,一个电子邮件客户端可能具有固定到左边的消息的列表,以说,可用的宽度的三分 ...

  3. Laravel 5.6 中文文档翻译完成,译者 60 人,耗时 10 天

    图片来自 laravel-news.com Laravel 5.6 的文档地址: Laravel 5.6 文档页面 总结 Laravel 5.6 文档翻译完成,总共耗时 10 天,参与用户 60 人. ...

  4. python翻译程序-Python桌面应用案例:TXT文档翻译工具(源代码)

    搞定了Word文档和PDF文档翻译工具的案例,总觉得还差了一点,仔细想了下,明白了,原来差了一个TXT文本文件翻译工具案例.这个就更简单了--在PDF文档翻译工具基础上加了两个函数,就可以支持TXT文 ...

  5. TiDB 官方设计文档翻译(三)

    这个系列共三篇译文:  TiDB 官方设计文档翻译(一)  TiDB 官方设计文档翻译(二)  TiDB 官方设计文档翻译(三) 原文:  https://pingcap.github.io/blog ...

  6. TiDB 官方设计文档翻译(二)

    这个系列共三篇译文:  TiDB 官方设计文档翻译(一)  TiDB 官方设计文档翻译(二)  TiDB 官方设计文档翻译(三) 原文:  https://pingcap.github.io/blog ...

  7. TiDB 官方设计文档翻译(一)

    TiDB是新兴的NEWSQL数据库,由国内的PINGCAP团队研发.  有关于TiDB的架构.部署和运维,官方有中文的文档,链接是:  https://github.com/pingcap/docs- ...

  8. 欢迎参与 KubeVela 官方文档翻译活动

    来源 | 阿里巴巴云原生公众号 背景 KubeVela v1.0 启用了新的官网架构和文档维护方式,新增功能包括文档版本化控制.i18n 国际化以及自动化流程.但目前 KubeVela 官方文档只有英 ...

  9. Sencha-概念-Events(事件)(官网文档翻译10)

    Sencha-概念-Events(事件)(官网文档翻译10) 煎茶Touch 2的组件和类的触发广泛的事件,在其生命周期的不同点.活动让你的代码,它周围的变化作出反应,并在煎茶触摸是一个关键的概念. ...

最新文章

  1. css 层叠式样式表(2)
  2. 下面关于表单的叙述错误的是_下面是关于表单数据环境的叙述,其中错误的是A.可以在数据环境中加入与表单操作有关的表B.数据环...
  3. 【 Verilog HDL 】不同抽象级别的Verilog HDL模型之门级结构描述
  4. java拼接sql保留两位小数_SQL 保留两位小数的实现方式
  5. Bad connect ack with firstBadLink 192.168.*.*:50010
  6. pwntools解题脚本模板
  7. php中文网 日历,php小型日历类库
  8. 使用Python为中秋节绘制一块美味的月饼
  9. oracle学用命令大全 笔记
  10. java 通过反射获取数组
  11. 牛人整理的统计学教材
  12. 软件工程--可行性研究
  13. SiTime硅晶振温度传感技术
  14. Docker 配置国内镜像加速器
  15. XposedZjDroid脱壳梆梆加固
  16. 想说说关于在刷题网站(牛客 、C语言网、力扣)上测试样例过了但是OJ判错这档子事
  17. php微擎Goto2C解密研究
  18. 【编程语言】Scala 函数式编程
  19. 运营商拥抱OpenStack背后:距运营级仍有差距
  20. SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)(Finchley版本)

热门文章

  1. Eugene Fama —— 一段 50 年的传奇
  2. mysql 存储过程参数数组_如何给存储过程,传一个数组参数?
  3. Java二维数组及面向对象介绍--------08
  4. 【洛谷P2947】向右看齐
  5. [转载]S/4 HANA中的银行对账单
  6. 启动SpringBoot项目时,报程序包不存在或者找不到符号的错误
  7. python是什么意思,Python怎么读
  8. 9.leetcode题目189: Rotate Array
  9. Swagger 3.0
  10. 【转载】裸眼识别二维码