Praat скриптинг из файла Pitch в таблицу - PullRequest
0 голосов
/ 20 сентября 2018

У меня проблемы с праатом.В частности, мне нужно написать скрипт, который извлекает, учитывая аудиофайл, высоту тона, уровень высоты тона, точечный процесс и голосовой отчет, а затем сохраняет все результаты в разных файлах с разделителями-запятыми, как если бы они были .csv, которые мне нужныоткрыть позже с Python.Пока я сохраняю эти результаты в виде текстовых файлов Praat, у меня нет проблем, но когда дело доходит до таблиц, я могу создавать их только с помощью уровня звука и голосового отчета.С шагом я пытался прочитать различные атрибуты вручную, чтобы построить таблицу, но некоторые из них не доступны, большая проблема, когда я пытаюсь получить доступ к кадрам, что приводит к неудачному выполнению сценария (вот код, который я 'm using)

audio = Read from file:name$

pitch = To Pitch: 0.0, 75, 300

pitch_table_columns$ = "xmin xmax nx dx x1 ceiling max_n_candidates frame_n frame_intensity frame_n_candidates frame_candidate_n frame_candidate_frequency frame_candidate_strength"
pitch_table = Create Table with column names: "pitch_table", 0, pitch_table_columns$

selectObject: pitch
xmin = Object_'pitch'.xmin
xmax = Object_'pitch'.xmax
nx = Object_'pitch'.nx
dx = Object_'pitch'.dx
#x1 = Object_'pitch'.x1
#ceiling = 300
#maxncandidates = Object_'pitch'.maxnCandidates
frames = Get number of frames
selectObject: pitch
for i from 1 to frames
    #intensity = Object_'pitch'.frame[i].intensity
    ncandidates = Object_'pitch'.frame[i].nCandidates
    for j in ncandidates
        frequency = Object_'pitch'.frame[i].candidate[j].frequency
        strength = Object_'pitch'.frame[i].candidate[j].strength
        selectObject: pitch_table
        Append row
        r = Get number of rows
        Set numeric value: r, "xmin", xmin
        Set numeric value: r, "xmax", xmax
        Set numeric value: r, "nx", nx
        Set numeric value: r, "dx", dx
        Set numeric value: r, "x1", x1
        Set numeric value: r, "ceiling", ceiling
        Set numeric value: r, "max_n_candidates", maxncandidates
        Set numeric value: r, "frame_n", i
        Set numeric value: r, "frame_intensity", intensity
        Set numeric value: r, "frame_n_candidates", ncandidates
        Set numeric value: r, "frame_candidate_n", j
        Set numeric value: r, "frame_candidate_frequency", frequency
        Set numeric value: r, "frame_candidate_strength", strength
    endfor
endfor

selectObject: pitch
Save as text file: "pitch.Pitch"

selectObject: pitch_table
Save as comma-separated file: "table.csv"

Закомментированные строки предназначены для атрибутов, к которым я не могу получить доступ, однако, когда я добираюсь до

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

, скрипт завершается ошибкой, и это запрещаетмне продолжать идти.Точно так же я не знаю, как получить таблицу из точечного процесса.Кто-нибудь знает, что не так с моим кодом или есть лучший способ добиться таких же (или хотя бы похожих) результатов?

...