Как получить или сохранить список высот в праате с помощью скриптов

Я пытаюсь использовать сценарии в praat для сохранения или записи в файл со значениями, заданными при использовании "Pitch Listing" в разделе "Pitch". Это мой код для скрипта:

selectObject: 1
View & Edit
editor: 1
    Select: 0.0, 10000
    Pitch listing
    p$ = Get pitch
    fileappend pitch123.txt 'p$'

Этот код возвращает только среднее значение для звукового файла, и мне интересно, есть ли способ избежать получения небольших порций файла и получения среднего тона, а вместо этого получить возможность получать данные, как это делает praat так:

Time_s   F0_Hz
0.254558   125.982312
0.264558   127.975510
0.274558   123.010164
0.284558   120.761760
0.294558   119.652539
0.304558   118.916850

Даже простая возможность сохранить файл, который появляется из "Pitch Listing", будет работать. Любая помощь приветствуется. Спасибо!

1 ответ

Решение

Используя новый синтаксис (Praat >= 5.3.63), вы можете создать объект Pitch и перебрать кадры, чтобы получить значение Pitch для этого кадра (по умолчанию один кадр каждые 10 мс).

writeFileLine: "./pitch_list.txt", "time,pitch"
selectObject: 1
To Pitch: 0, 75, 600
no_of_frames = Get number of frames

for frame from 1 to no_of_frames
    time = Get time from frame number: frame
    pitch = Get value in frame: frame, "Hertz"
    appendFileLine: "pitch_list.txt", "'time','pitch'"
endfor
Другие вопросы по тегам