Contour 将Praat音高文件中的文本提取到另一个文本文件中
我想知道是否有人能帮我解决一个棘手的问题,那就是将Praat音高轮廓的时间和频率提取到txt文件中 我从Contour 将Praat音高文件中的文本提取到另一个文本文件中,contour,pitch,pitch-tracking,praat,pitch-detection,Contour,Pitch,Pitch Tracking,Praat,Pitch Detection,我想知道是否有人能帮我解决一个棘手的问题,那就是将Praat音高轮廓的时间和频率提取到txt文件中 我从 File type = "ooTextFile" Object class = "Pitch 1" xmin = 0 xmax = 1.592 nx = 159 dx = 0.01 x1 = 0.006002267573695814 ceiling = 1900 maxnCandidates = 2 frame []: frame [1]: inte
File type = "ooTextFile"
Object class = "Pitch 1"
xmin = 0
xmax = 1.592
nx = 159
dx = 0.01
x1 = 0.006002267573695814
ceiling = 1900
maxnCandidates = 2
frame []:
frame [1]:
intensity = 0
nCandidates = 1
candidate []:
candidate [1]:
frequency = 0
strength = 0.9
frame [2]:
intensity = 0
nCandidates = 1
candidate []:
candidate [1]:
frequency = 0
strength = 0.9
frame [3]:
intensity = 0
nCandidates = 1
candidate []:
candidate [1]:
frequency = 763.0480724135344
strength = 0.9
frame [4]:
intensity = 0
nCandidates = 1
candidate []:
candidate [1]:
frequency = 763.3612753914916
strength = 0.9
....
我想去:
0,0
t1,0
t2,763.0480724135344
t3,763.3612753914916
....
tn, ...
如果脚本能够读取“dx=”中的信息并计算x坐标的时间,那也太好了
提前感谢您的帮助。我一直在研究一些过程,以快速将不同的对象类型转换为它们的表表示形式,
Pitch
对象相对简单。试试这个:
# Execute this with your Pitch object selected
@pitchToTable()
procedure pitchToTable ()
.obj = selected("Pitch")
.name$ = extractWord$(selected$(), " ")
.t1 = Get time from frame number: 1
.m1 = To Matrix
.m2 = Transpose
.tor = To TableOfReal
.id = To Table: "Time"
Set column label (index): 2, "F0"
Formula: "Time", "'.t1' + (Object_'.obj'.dx * (row - 1))"
Formula: "F0", "if self then self else undefined fi"
Rename: .name$ + "_pitch"
removeObject: .m1, .m2, .tor
endproc
转换利用了这样一个事实,即大多数Praat对象都可以转换为矩阵对象,而矩阵对象基本上已经是一个表了。在这种情况下,唯一需要进行的操作是换位(创建垂直表)和重命名列。谢谢jja。这是提取时间和F0的好方法。我习惯于做一些像你建议的事情,但是如果能有一种方法从音高文件中提取数据也会很好,不是吗?我不确定我是否明白你的意思。你是说不用普拉特?我个人认为这不是一个好主意,因为这些格式不是为导出到外部应用程序而设计的。使用Praat解释器是最好的方法。但如果必须的话,可以使用正则表达式将其更改为基本符合YAML,就像我在中所做的那样。如果你愿意的话,我很乐意扩展答案,但我想你可能也想在你的问题中澄清一下。我喜欢你的答案,肯定会按照这种方式,在我的脚本中集成类似的内容。我只是指出,如果有办法(可能不包括使用Praat)来处理文件并获得相同的结果,也会很好。如果你有时间的话,我很乐意看到你上面建议的扩展。如果你没有时间,让我再次感谢你的时间和帮助。