问题标签 [praat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
318 浏览

python - 从 Pitch 文件到表格的 Praat 脚本

我在普拉特遇到了一些问题。特别是我需要编写一个脚本来提取,给定一个音频文件,音高,音高层,点处理和语音报告,然后将所有结果保存在不同的逗号分隔值文件中,就好像它们是我需要的 .csv稍后用 Python 打开。只要我将这些结果保存为 Praat 文本文件,我就没有问题,但是当涉及到表格时,我只能使用音高层和语音报告来创建它们。我尝试手动读取各种属性以构建表格,但其中一些属性无法访问,最大的问题是当我尝试访问导致脚本执行失败的帧时(这是我的代码米使用)

注释掉的行是我无法访问的属性,但是当我到达时

ncandidates = Object_'pitch'.frame[i].nCandidates

脚本失败了,这使我无法继续前进。同样,我不知道如何从点过程中获取表格。任何人都知道我的代码有什么问题,或者是否有更好的方法来获得相同(或至少相似)的结果?

0 投票
1 回答
629 浏览

time - praat 脚本获取某个单词的音高列表

我正在尝试为 Praat 编写一个脚本,但很难做到。

我想要的是在一个句子(和一个声音)中对某个单词有一个结果,例如:因为你现在不使用你的车,我可以借用它吗?

我想要一个“时刻”这个词的音调列表。如果我选择单词“moment”并在音高菜单下选择音高列表,那么它会给我每 0.01 秒的时间和 f0(打开声音和 TextGrid)。

我一直在搜索并尝试编写此脚本,但尚未成功。

你能帮我解决这个问题吗?


我已经修改了上面的问题。

句子:因为你现在不用你的车,我可以借一下吗? (我有一个 mp3 文件,这个句子有 2 层的文本网格,第 1 层是单词,第 2 层是电话)

以下是我的脚本。我想为单词“moment”的最后一个音节部分设置 f0 最大值和最小值,但只成功地在整个间隔 10 中设置了 f0 最大值和最小值(第 1 层中的“矩”)。

我还有一个“时刻”一词的电话层(在第 2 层),如下所示:

“时刻”一词的电话等级是 M OW M AH NT

=> 我想要 [M AH NT] 的 f0 max 和 f0 min 不包括 [M OW] 这是第一个音节部分。

以下是我到目前为止的脚本。



你能帮我解决这个问题吗?太感谢了。

0 投票
1 回答
94 浏览

r - 尝试在 R 中创建带有箭头的图形,但不能将离散值应用于连续比例

我的数据集是在 praat 中制作的表格形式,其中包含 f220、f120、f280 和 f180 列。在每一个之下是与特定单词相关的度量,因此第 1 行中的单词将具有唯一的 f220、f120、f280 和 f180 值。我的目标是绘制一个从 x1=f220 y1=f120 到 x2=f280 y2=f180 的箭头。这是我的桌子:

这是我的桌子

但是,每当我尝试在 ggplot 中使用 f220、f120、f280 或 f180 时,它会将测量值视为离散值,而不是连续的。我相信每个单元格的内容都被视为一个因素而不是一个数值。我已经尝试过使用as.numeric(),但是这返回了不正确的值。我确实得到了一个图表:

但是轴没有缩放,而且我无法设置任何限制或反转轴,从而得到“提供给连续缩放的离散值”错误。这就是发生的事情:

这就是发生的事情

我可以通过手动创建一个包含所有相关值的有序对的数据框来获得我想要的东西,但是由于这很耗时而且我需要为 100 多个数据集执行此操作,我宁愿找到一种方法不仅仅是复制和粘贴数字。这是手动数据框(这是通过数据框的正确图表):

这是通过数据框的正确图表

在之前的项目中,我能够使用以下代码制作点图,其中“故事”是由 praat 生成的类似表格,但仅使用 f1 和 f2。

我使用完全相同的 praat 脚本来创建两个表,除了当前显示的表被修改为具有两个 f1 和两个 f2 值(一个在元音的 20% 和一个在 80% 的元音),这样我就可以创建一个箭头20% 到 80% 点以表示元音在发音空间中的移动。我在之前的项目中从来没有遇到过任何麻烦,也不知道为什么我的数字被视为当前项目的一个因素。

对于能够获得正确表格而无需手动将值输入数据框的任何帮助,我们将不胜感激。

0 投票
1 回答
274 浏览

praat - Praat:删除节点并使用脚本发布重新合成

我用 Praat 生成了一个纯音(440 Hz)并尝试将其音高更改为 277.1826309768721 Hz(中 C),然后使用脚本更改为 220 Hz。但是,脚本会在“删除节点”(如Command "Remove point(s)" not available for current selection)或“发布再合成”(Command "Publish resynthesis" not available for current selection)处崩溃,以脚本中先出现的为准。

这是脚本的两个版本,一个尝试发布重新合成:

还有一个不尝试发布重新合成(因为它不起作用)而是尝试更改节点的位置,但失败了:

我的最终目标是编写一个脚本,该脚本采用 Manipulation 对象,生成从小 C(130.8127826502993 Hz)到 B5(987.7666025122483 Hz)的所有钢琴键频率的声音的单调版本,并将它们保存到文件夹中。如果脚本中不允许删除节点或发布重新合成,则无法执行此操作。

是的,我确实尝试过编辑 Manipulation 对象本身,但由于它不起作用,我切换到创建 Pitch 层的方法。

顺便说一句,我也尝试过这样的事情:

开始,但这导致了一个No object named "tone"错误,即使我选择了一个声音和一个名为tone.

0 投票
1 回答
1358 浏览

report - Parselmouth 批量全语音报告

我想知道是否有一种方法可以批量处理音频文件并使用 parselmouth 或其他 pythonic 实现的 praat 生成完整的语音报告。到目前为止,我只能获得中间音高,但我需要能够计算出脉冲和周期的总数、声音中断的程度和微光。如果使用 python 无法做到这一点,是否可以使用 praat 脚本? praat 生成的语音报告

0 投票
1 回答
80 浏览

linux - 无法在 Linux 命令行上执行 Praat 命令

我正在尝试通过运行以下命令在 linux(ubuntu 14.04)命令行上测试 praat(5.3.16)

它打开 praat gui“Praat Object”和“Praat Picture”,但它们都是空的,终端没有“>”,表示 praat 正在运行但没有发生任何事情。

请让我知道如何在命令行上执行 praat,谢谢。

0 投票
1 回答
189 浏览

praat - Praat 中的变调准确吗?

我正在尝试将文件的音高转换为 20Hz,但是当我在 praat 中执行此操作并获得平均音高时,我从未得到 20Hz,只是类似的东西。

例如,我有一个 .85s 文件,其中包含“108.07459844192924 Hz(SELECTION 中的平均音高)”;如果我进行操作,获取音高层并将其移动 20 Hz,结果是文件 126.12524578822578 Hz(SELECTION 中的平均音高)

我已经尝试在创建操作对象时更改时间步长、最小和最大音高。这似乎不是问题

这是我的脚本(我已经手动测试过并且结果相同):

注意:数组 dur_files[] 有 10 个不同长度的文件

0 投票
1 回答
154 浏览

python - 尝试纠正此错误:IndexError: index 0 is out of bounds for axis 0 with size 0

该代码旨在从 PRAAT 中提取数据,因此它应该提取在 wav 文件和 textgrid 中找到的数据,这些数据用于在 PRAAT 中进行注释。然后代码应输出提取到 csv 文件中的信息。

它返回了以下错误,但是,在调试问题后,提取器似乎没有提取任何特征,因此数组为空。

0 投票
1 回答
396 浏览

nlp - Praat - 处理 .wav 文件的音高时出错:“最小音高不得小于...”

我已经在 Praat 编写脚本只有几个星期了,所以请耐心等待。我正在尝试在带注释的语音数据语料库中提取每个口语单词的音高轮廓。我可以毫无问题地提取整个长声音文件的音高轮廓,并且可以将 .wav 文件压缩成单个口语单词的较小 .wav 文件,但是当我尝试循环遍历较小的 .wavs 时,我经常收到此错误:

要分析此声音,“最小音高”不得小于 [某个数字]。

这个数字似乎很随意。有没有一种好方法可以To Pitch:根据给定 .wav 的最小音高动态更改参数?

0 投票
1 回答
944 浏览

python - 如何通过 parselmouth 在音频子序列上计算音频指标

我正在使用parselmouth(praat 周围的包装器)通过这样做来提取强度和音高特征:

但是,音频文件包含长序列的静音,我想在计算这些音频指标之前将其删除。我可以通过处理通过 wave 包读取音频(并应用一些逻辑)返回的 numpy 数组来消除静音,但无法将新数组传递给 parselmouth。

我什至愿意为 parselmouth 提供 startTime 和 endTime 参数,但也找不到支持该参数的文档。