我想在任意时间安排多个音频段的回放。从音频文档中,我认为我应该使用PyschPortAudio来获得最可预测的延迟。另外,从文档中,我了解到我可以日程安排播放单个声音。我很好奇,是否可以提前安排多个短段(模块延迟)?另外:理想情况下,在播放过程中可以更改此计划。
发布于 2021-11-11 00:55:03
是的,有可能对多个独立的PsychPortAudio播放器进行协调的预先调度.作为一个最低限度的例子,在Mac上,以下内容似乎适用于我:
import audiomath as am
am.BackEnd.Load('PsychToolboxInterface')
p1 = am.Player(am.TestSound('12'))
p2 = am.Player(am.TestSound('34'))
t0 = am.Seconds()
p1.Play(when=t0 + 2.0)
p2.Play(when=t0 + 2.2) # overlaps p1, but offset by 200ms这将不允许p1和p2完全无缝地计时--每一次预定的发作仍会被几百微秒左右的某物所影响。这是非常好的刺激表现,但可能(取决于声音内容)仍然足以创造声音之间的过渡伪影。这取决于你想要达到的效果--最好的办法是尝试它,并找出它是否符合你的需要。取决于您希望事物的声音和行为方式,可能有比PsychPortAudio预置更好的策略(例如:不加载PsychPortAudio后端,而是在循环中播放声音,然后在Player到达之前动态地更改Sound数据的部分)。
https://stackoverflow.com/questions/69919601
复制相似问题