1.参考文献 ¶
Jadoul, Y., Thompson, B., & deBoer, B. (2018). Introducing Parselmouth: A Python interface to Praat. Journal of the Phonetics, 71(), 1-15. https://doi.org/10.1016/j.wocn.2018.07.001
2.研究背景 ¶
语音学中的数据分析依赖于Praat(Boersma,2001; Boersma&Weenink,2018)。本文介绍了Parselmouth,这是一个开放源代码的Python库,该库将Praat的主要功能扩展到了Python中。有两个主要优势:(1)Praat的用户可能会受益于Python的广泛的计算库;(2)Python用户可以访问Praat复杂声学分析的许多工具和实用程序。该脚本可以从https://github.com/YannickJadoul/Parselmouth下载,可以使用Praat的基本语音分析方法。
本文安排如下:第1.1、1.2和1.3节分别提供了详细的背景和动机,将Parselmouth与其他软件包进行比较,并提供了有关Parselmouth的技术信息。第1.4、1.5节将提供有关Parselmouth的功能,如何安装Python库以及在怎样找到其在线文档和更多资源。第2节介绍了五个用法示例,重点介绍了语音学家可能面临的最常见的技术挑战:声学数据的可视化(第2.1节);读取和处理大量的声学文件和数据(第2.2节);按复杂的声学维度改变音频文件(第2.3节);声学分析输出的统计分析(第2.4节);并将自动声学分析整合到实验设计中(第2.5节)。第3.1节简短地讨论了Parselmouth的未来。
3.内容 ¶
1.1 动机 ¶
Python是进行数据处理和分析的必备工具箱。另外使用Praat分析声音数据。必需的功能通常不可用或分散在多个不相关且有时不兼容的库中。开发Parselmouth作为该问题的解决方案。Parselmouth不能替代Praat,它使Praat的功能可在Python中使用。
1.2 与其他软件包的关系 ¶
还有其他软件包,包括praat-py、 praat-python-scripts、praatIO和textgrid。在Python代码中实现了Praat的功能。但一个显着缺点是,不能保证与Praat相同的结果。相反,其他方法则提供了Praat脚本的Python接口,但Python用户仍然需要学习Praat脚本语言,而不是使用Python库。
Parselmouth结合了这些方法,提供了一个完整的Python库,通过更全面的技术方案来解决将Python和Praat的代码链接在一起的挑战。确保使用Parselmouth进行的任何分析都与Praat完全一致,而用户无需了解Praat的脚本语言。许多音频工具和库都对Python用户开放(https://github.com/faroit/ awesome-python-scientific-audio),希望Parselmouth可以补充这些工具。
允许在R语言和MATLAB环境中访问Praat功能的库:PraaR(Albin,2014),以及rPraat和mPraat(Bořil&Skarnitzl,2016),这些软件包是Parselmouth的补充。这些程序包通常受到与上面讨论的Python程序包相同的限制。
1.3 优势 ¶
Python和Praat之间的转换似乎不会使Parselmouth的效率低于Praat脚本的效率。
1.4 功能 ¶
Parselmouth当前支持8类:声音,频谱,频谱图,强度,音高,共振峰,谐波和MFCC(以及它们之间的转换)。除了主要功能之外,Parselmouth还实现了对Praat命令和脚本的访问。
1.5 安装 ¶
使用以下命令通过默认的软件包管理器pip进行安装:
pip install praat-parselmouth
Parselmouth的源代码在GitHub上,网址为https://github.com/YannickJadoul/Parselmouth。
2.示例 ¶
提供五个简单的用法示例,旨在说明在Python中使用Praat功能的基本原理和效率。这些示例中的代码在https://github.com/YannickJadoul/Parselmouth以及https://parselmouth.readthedocs.io。
选择这些示例以代表语音实验的不同部分。首先,需要创建声音刺激并向被试播放(第2.3和2.5节)。之后,需要对收集到的数据进行一些处理(第2.2节),最后可以对结果进行统计分析(第2.1节和第2.4节)。
2.1 数据可视化 ¶
生成高度准确的频谱图是Praat的功能之一。Parselmouth允许用户使用更多类型的图和不同Python作图软件包的功能。
2.2 读取数据 ¶
Python及其库提供了丰富的结构和实用程序,用于存储和加工结构化数据集。与Parselmouth结合使用时,这些工具可以促进对任意复杂数据集的声学分析。例如一个实验,多个被试在多种实验条件下产出音频,需要从中提取平均谐波噪声比。音频文件存储在计算机中结果的子目录中。并且每个音频文件都使用唯一的被试编号来命名。实验还产生了一个大型的csv文件,提供每个被试的信息,包括实验条件和被试编号(pp_id)的变量。但与数据处理库pandas(McKinney,2010)一起,使用Parselmouth可以轻松完成数据分析任务,只用几行Python代码就可以实现此操作。该示例再次说明了可以对一组音频文件进行批量处理,以便提取特定的声学特征集。
2.3 音频加工 ¶
List4列出了与操纵声调有关的示例。操纵音频文件的F0是一个复杂的过程,并且通常很难在基于Python的工具中使用,但是对实验刺激声调的严格控制可以用于测试声调变化对语言习得和感知相关的问题(例如,Filippi,Gingras和Fitch,2014年)。在List 4所示的示例中,我们访问与Praat的Manipulation相关的功能,并调用许多Praat actions将语音的基频提高一个八度。
List 4中的示例包括了两个方面:功能,它说明了如何在praat中访问Manipulation功能,更重要的是,它演示了如何使用Parselmouth的call功能。如上所述,更改音频的音高、声调是一项艰巨的任务,使用Parselmouth可以将其集成到更大的Python环境中。但在这个具体示例中还想通过显示与Praat用户界面和脚本语言的一对一映射来演示如何使用praat.call。
2.4 统计分析 ¶
尽管在Praat中也可以进行统计分析,但Python用户使用的统计分析库范围广泛,并且可以添加新方法进行必要的统计分析。Parselmouth不必用Python重写现有的Praat脚本,而是允许用户从Python运行Praat脚本,并将脚本的输入和输出与其余的Python代码接口。
2.5 实验设计 ¶
基于Python的实验设计软件包括PsychoPy,Parselmouth。虽然PsychoPy提供了方便的框架来设置Python实验,但Parselmouth还允许从通用的Python中访问Praat功能。
4.结论 ¶
本文说明了Parselmouth作为Praat的Python接口的作用。示例着重于可视化,数据文件处理,音频处理,统计库以及与PsychoPy的整合。Parselmouth的目的是将Praat和Python链接起来; Parselmouth使Praat用户可以访问Python的各种实用程序包,而且还可以自然地提高用户使用Python编程的经验,从而将Praat功能的控制权移交给Python用户。