我用 Praat 生成了一个纯音(440 Hz)并尝试将其音高更改为 277.1826309768721 Hz(中 C),然后使用脚本更改为 220 Hz。但是,脚本会在“删除节点”(如Command "Remove point(s)" not available for current selection
)或“发布再合成”(Command "Publish resynthesis" not available for current selection
)处崩溃,以脚本中先出现的为准。
这是脚本的两个版本,一个尝试发布重新合成:
Create Sound as pure tone: "tone", 1, 0, 0.4, 44100, 440, 0.2, 0.01, 0.01
To Manipulation: 0.01, 75, 600
Create PitchTier: "empty", 0, 1
View & Edit
Add point... 0 277.1826309768721
selectObject: "Manipulation tone"
plusObject: "PitchTier empty"
Replace pitch tier
selectObject: "Manipulation tone"
View & Edit
Publish resynthesis
还有一个不尝试发布重新合成(因为它不起作用)而是尝试更改节点的位置,但失败了:
Create Sound as pure tone: "tone", 1, 0, 0.4, 44100, 440, 0.2, 0.01, 0.01
To Manipulation: 0.01, 75, 600
Create PitchTier: "empty", 0, 1
View & Edit
Add point... 0 277.1826309768721
selectObject: "Manipulation tone"
plusObject: "PitchTier empty"
Replace pitch tier
selectObject: "Manipulation tone"
View & Edit
Remove point(s)
Add point at: 0, 220
selectObject: "PitchTier empty"
selectObject: "Manipulation tone"
plusObject: "PitchTier empty"
Replace pitch tier
selectObject: "Manipulation tone"
View & Edit
我的最终目标是编写一个脚本,该脚本采用 Manipulation 对象,生成从小 C(130.8127826502993 Hz)到 B5(987.7666025122483 Hz)的所有钢琴键频率的声音的单调版本,并将它们保存到文件夹中。如果脚本中不允许删除节点或发布重新合成,则无法执行此操作。
是的,我确实尝试过编辑 Manipulation 对象本身,但由于它不起作用,我切换到创建 Pitch 层的方法。
顺便说一句,我也尝试过这样的事情:
s$ = selected$("Sound")
m$ = selected$("Manipulation")
selectObject: s$
endtime = Get end time
selectObjcet: m$
Remove points between... 0 endtime
开始,但这导致了一个No object named "tone"
错误,即使我选择了一个声音和一个名为tone
.