Извлечь текст из файла тона Praat в другой текстовый файл
Мне было интересно, могут ли некоторые помочь мне с хитрой вещью, которая извлекает время и частоту контура пата Пата в текстовый файл.
Я начинаю с
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 =" и вычислить время для координат х.
Заранее спасибо за помощь.
1 ответ
Я работал над некоторыми процедурами для быстрого преобразования различных типов объектов в представления их таблиц, и 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 можно привести к объекту Matrix, который уже является таблицей. В этом случае единственные манипуляции, которые необходимо выполнить, - это транспонирование (чтобы иметь вертикальную таблицу) и переименование столбцов.