我对信号处理还不太熟悉(关于这一点,numpy、scipy和matlab)。我试着用Python中的LPC来估计元音共振峰,方法是修改下面的matlab代码:

这是我目前的代码:#!/usr/bin/env python

import sys

import numpy

import wave

import math

from scipy.signal import lfilter, hamming

from scikits.talkbox import lpc

"""

Estimate formants using LPC.

"""

def get_formants(file_path):

# Read from file.

spf = wave.open(file_path, 'r') # http://www.linguistics.ucla.edu/people/hayes/103/Charts/VChart/ae.wav

# Get file as numpy array.

x = spf.readframes(-1)

x = numpy.fromstring(x, 'Int16')

# Get Hamming window.

N = len(x)

w = numpy.hamming(N)

# Apply window and high pass filter.

x1 = x * w

x1 = lfilter([1., -0.63], 1, x1)

# Get LPC.

A, e, k = lpc(x1, 8)

# Get roots.

rts = numpy.roots(A)

rts = [r for r in rts if numpy.imag(r) >= 0]

# Get angles.

angz = numpy.arctan2(numpy.imag(rts), numpy.real(rts))

# Get frequencies.

Fs = spf.getframerate()

frqs = sorted(angz * (Fs / (2 * math.pi)))

return frqs

print get_formants(sys.argv[1])

使用this file作为输入,我的脚本返回以下列表:[682.18960189917243, 1886.3054773107765, 3518.8326108511073, 6524.8112723782951]

我甚至还没到最后一步,他们根据带宽过滤频率,因为列表中的频率不对。根据Praat的说法,我应该得到这样的结果(这是元音中间的共振峰列表):Time_s F1_Hz F2_Hz F3_Hz F4_Hz

0.164969 731.914588 1737.980346 2115.510104 3191.775838

我做错什么了?

非常感谢

更新:

我改了这个

x1 = lfilter([1., -0.63], 1, x1)

x1 = lfilter([1], [1., 0.63], x1)

按照沃伦·韦克瑟的建议,现在

[631.44354635609318, 1815.8629524985781, 3421.8288991389031, 6667.5030877036006]

我觉得我好像丢了什么东西,因为F3非常不好。

更新2:

我意识到传递给order的scikits.talkbox.lpc由于采样频率的不同而关闭。更改为:Fs = spf.getframerate()

ncoeff = 2 + Fs / 1000

A, e, k = lpc(x1, ncoeff)

现在我明白了:

[257.86573127888488, 774.59006835496086, 1769.4624576002402, 2386.7093679399809, 3282.387975973973, 4413.0428174593926, 6060.8150432549655, 6503.3090645887842, 7266.5069407315023]

更接近普拉特的估计!

matlab lpc求共振峰频率,用Python中的LPC估计共振峰相关推荐

  1. matlab lpc求共振峰频率,在Python中使用LPC估计共振峰

    我是信号处理的新手(而且是numpy,scipy和matlab).我正在尝试通过调整这个matlab代码来估计 Python中使用LPC的元音共振峰: 到目前为止,这是我的代码: #!/usr/bin ...

  2. matlab求最小范数解,python中计算最小范数解或伪逆解最精确的方法是什么?

    我的目标是解决:Kc=y 对于伪逆(即最小范数解): ^{pr2}$ 这样模型(希望)是高次多项式模型f(x) = sum_i c_i x^i.我特别感兴趣的是我们有更多的多项式特征比数据(少方程太多 ...

  3. linux中python如何调用matlab的数据_?如何在Python中加入多个数据帧?

    全文共2235字,预计学习时长7分钟 来源:Pexels 初学Python编程的人,面临的是各种未知的挑战. 下面是一个几乎让所有更有抱负的数据科学家都感到意外的场景: 你正在处理一个从多个源收集数据 ...

  4. matlab 判断是否是nan,关于Python中Inf与Nan的判断问题详解

    python中运行错误,关于聚类算法出现的nan值问题处理的数据有10个属性,使用kmeans聚类算法出现了nan值的错误,请问怎么说明你的样本数据中有nan值,通常是因为原始数据中包含空字符串或No ...

  5. python编程求导数_在python中如何计算导数?

    这个问题的答案很简单.当然,在另一个答案中给出的subs选项可用于计算某个数的导数,但如果要绘制导数,则不起作用.有一种方法可以解决这个问题:lambdify,如下所述. 使用lambdify将所有s ...

  6. matlab 创建彩色图像,用matlabd在Python中创建彩色图像

    我正在尝试用Python创建彩色图像.数据来自Matlab文件. 这是我的密码.实际上我只能创建灰度图像,但我需要彩色图像. 你能帮帮我吗?在 Matlab文件的数据是512x512x200双数组.在 ...

  7. python 多项式求系数_在Python中用于计算“多项式系数”的numpy / scipy函数

    是否有任何 python函数(可能来自numpy或scipy)计算扩展中x ** r的系数(1 xx ** 2 x ** 3 - x **(k-1))** n ,其中k> = 1,n> = ...

  8. python求雅可比矩阵_在Python中计算神经网络的雅可比矩阵

    通常,神经网络是一个多变量,矢量值函数,如下所示: 函数f有一些参数θ(神经网络的权重),它将一个N维向量x(即猫图片的N像素)映射到一个m维矢量(例如,x属于M个不同类别中的每个类别的概率): 在训 ...

  9. matlab的gccphat转C语言,Python中的GCCPHAT互相关

    我试图用python实现GCC-PHAT.在 该方法类似于以下两个环节: link1和link2 GCC-PHAT和使用FFT的正常互相关之间的唯一区别似乎是除以幅度.在 这是我的代码:import ...

最新文章

  1. 用Unity3D实现可展开公告版
  2. 几道比较有意思的js面试题
  3. 工业交换机:如果出现了物理性故障该怎么判断?
  4. Python 获取本机或者服务器的 IP 地址
  5. https open api_Web上的分享(Share)API
  6. Linux/Document: Livepatch
  7. 尼尔森十大可用性原则
  8. Oracle分页查询与RowNum
  9. jqueryAjax在客户端发送请求的方式(摘抄!)
  10. 【校招VIP】产品行测之逻辑推理
  11. android从assets文件下面复制文件
  12. 费尔防火墙源代码阅读
  13. JAVA 整形 getbytes_Java getBytes() 方法
  14. OpenGL第三方库:GLAD入门篇
  15. 今晚与小妹亚美合作了一把qq游戏,大获全胜!
  16. 一、barrier指令DSB,DMB,ISB,fence——内存屏障,指令屏障
  17. uni-app 微信小程序启用组件按需注入
  18. 利用ST MCU内部基准参考电压监测电源电压及其它
  19. 国产智多晶FPGA基于Verilog的设计开发流程
  20. docker日常操作

热门文章

  1. IPTV直播和实时互动直播是一回事吗?
  2. java8 集合的交集、并集、差集
  3. Excel基础—工作界面概述
  4. PTA 7-6 鸡群的怜悯 (C语言)
  5. C语言总结这一篇就够了(不收藏必后悔系列)
  6. c语言uint64_t转String,C语言编程 8字节的数据转换为uint64_t类型数据
  7. iphone手机里的计算机没有了怎么办,iphone连接电脑无反应怎么办
  8. 2021年河南省高考成绩位次查询,2021年河南高考位次查询及一分一段表排名查询...
  9. 语音识别发展史与入门书籍简介
  10. Python爬虫新手进阶版:怎样读取非结构化网页、图像、视频、语音数据