我现在只使用Praat脚本几周,所以请多多包涵。我正在尝试提取带注释的语音数据语料库中每个口语单词的音高轮廓。我可以毫无问题地提取整个长声音文件的音高轮廓,并且可以将.wav文件切成单个语音单词的较小.wav文件,但是当我尝试遍历较小的.wavs时,经常会遇到此错误:
要分析此声音,“最小音调”不得小于[某些 数字]。
该数字似乎是任意的。
有没有一种好的方法可以根据给定.wav的最小音高动态更改To Pitch:
的参数?
#initialize counter
i = 0
#loop through .wav files
for current_file from 1 to file_count
i = i + 1
select Strings list
filename$ = Get string... current_file
Read from file... 'source_directory$'/'filename$'
appendInfoLine: string$(i)+ "/" + string$(file_count) + " " + filename$
To Pitch: 0.1, 75, 600
#create pitch file
pitch_file$ = filename$ - "wav" + "pit"
#write to pitch file
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_file$, "'time','pitch'"
endfor
endfor
答案 0 :(得分:0)
您可能已经弄清楚了,但是如果没有,请尝试将时间步长从0.1更改为0.01或更小(对音高:0.01、75、600),或者如果不影响您的时间间隔,则将该间隔延长分析。
我今天遇到了完全相同的错误,并且由于您对持续时间的描述,我有点想出了问题所在。在Praat中查看间距线时,可以看到放大时的数据点。如果在单个间隔内点数少于四个,则会发生错误(完全放大间隔时不计点,查看间隔很小计数时多余的空格)。
当我使间隔更长一些(包括第四个基点)或以编程方式设置较小的时间步长时,错误消失了。我使用可访问Praat的python程序包,但过程应相似。 当然,如果您有更好的解决方案,我想听听:)