我一直在研究普拉特的音频分析技术。但是,我发现了一些在Python中使用Praat的库,并且希望这样做。
该网站提供了许多功能,可以提取时,praat是使用。我遵循了他关于在python中“集成”它的说明。然而,http://homepage.univie.ac.at/christian.herbst//python/index.html,我无法让它工作。它返回错误:\ OSError: Errno 2没有这样的文件或目录
我还找到了另一个库:https://pypi.python.org/pypi/python-praat-scripts。这还返回错误(当我运行下面的代码时):OSError: Errno 13权限被拒绝
from praatinterface import PraatLoader
pl = PraatLoader(praatpath ='/Users/user/Downloads/praat6015_mac64.dmg')
text = pl.run_script('formants.praat', 'sample.wav', 5, 5500)
formants = pl.read_praat_out(text)如果有人能帮我正确地把praat和python集成起来,那就太好了。谢谢。
发布于 2018-08-07 18:34:38
免责声明:我是上述帕塞尔茅斯图书馆的作者。
如果您不介意尝试另一个库,亲嘴将Praat集成到Python中,而不需要外部的Praat二进制:
import parselmouth
resulting_objects = parselmouth.praat.run_file('formants.praat', 'sample.wav', 5, 5500)resulting_objects变量将包含选中的普拉特对象的列表,因此如果您确保选择Formant对象,则返回该对象。或者,如果要捕获输出窗口,请运行
import parselmouth
output_string = parselmouth.praat.run_file('formants.praat', 'sample.wav', 5, 5500, capture_output=True)另一种选择是调用Python本身的分析,并执行如下操作:
import parselmouth
sound = parselmouth.Sound("sample.wav")
formant = sound.to_formant_burg(max_number_of_formants=5, maximum_formant=5500)
formant.get_value_at_time(3, 0.5) # For the value of formant 3 at 0.5 seconds发布于 2016-04-14 17:30:37
我没有使用过您的任何工具,但似乎问题在于您的praatpath变量。在链接到的页面中,它们应该指向Praat二进制文件,而在您的示例中,它们指向64位Mac发行版的Praat存档。
你得先安装Praat。这些说明是相当标准的,但引用了普拉特网站的话:
下载后,web浏览器可能直接打开
.dmg文件;然后您将看到程序Praat或Praat.app。如果浏览器没有打开.dmg文件,那么应该双击下载窗口(或主目录中的下载文件夹)中的.dmg文件;双击之后,您可能会直接看到程序Praat或Praat.app,或者您可能会看到一个名为Praat6016的磁盘图标,当您打开该图标时,它将显示程序Praat或Praat.app。要安装Praat,只需将程序Praat或Praat.app拖到应用程序文件夹(或其他任何地方)。
一旦完成,praatpath变量应该指向这个可执行文件。
这适用于您的第二个示例,但我怀疑第一个示例的问题可能类似(即。它不知道普拉特在哪里,因为它要么没有安装,要么没有在PATH中安装)。
https://stackoverflow.com/questions/36615735
复制相似问题