0

我正在尝试使用 praat 中的脚本来保存或写入文件,其中包含使用“音高”下的“音高列表”给出的值。到目前为止,这是我的脚本代码:

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”中弹出的文件也可以。任何帮助表示赞赏。谢谢!

4

1 回答 1

0

使用新语法 (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
于 2018-01-02T08:58:06.157 回答