1

我正在尝试将文件的音高转换为 20Hz,但是当我在 praat 中执行此操作并获得平均音高时,我从未得到 20Hz,只是类似的东西。

例如,我有一个 .85s 文件,其中包含“108.07459844192924 Hz(SELECTION 中的平均音高)”;如果我进行操作,获取音高层并将其移动 20 Hz,结果是文件 126.12524578822578 Hz(SELECTION 中的平均音高)

我已经尝试在创建操作对象时更改时间步长、最小和最大音高。这似乎不是问题

这是我的脚本(我已经手动测试过并且结果相同):

注意:数组 dur_files[] 有 10 个不同长度的文件

for i from 0 to 10
    for j from 0 to 10
        selectObject: dur_files[i]
        durat_mod = Get end time
        manip = To Manipulation: 0.005, 10, 1000
        selectObject: manip
        pitch_tier = Extract pitch tier
        selectObject: pitch_tier
        Shift frequencies: 0, durat_mod, 3*(j-5), "Hertz"
        plusObject: manip
        Replace pitch tier
        removeObject: pitch_tier
        selectObject: manip
        resynth = Get resynthesis (overlap-add)
        removeObject: manip
        selectObject: resynth
        Rename: selected$ ("Sound") + "_pitch-" + string$(j-5))
        lib_files[i,j] = selected()
        lib_files_name$[i,j] = selected$() 
    endfor
endfor
4

1 回答 1

0

好吧,差不多一年后,我可以回答我自己的问题:

  • 找到spech录音的音高(F0)并不是一件简单的事情,音高只有在录音的浊音部分(元音)才有意义

  • Praat 实际上,按预期进行音高变化,测量是可能有误差的东西

于 2020-05-07T09:01:02.697 回答