二维图的超声化
sonip的Python项目详细描述
sonipy
:一个散点图声音化包
一个软件包,将分散的图转换成感知上一致的声音文件,用于科学研究,并使科学更容易获得。在
这个项目是由Locke Patton和{a3}开发的。单击here查看解释此项目背后动机的twitter线程。在
sonipy
做什么?在
这是一个example sonification。在
我们的声音处理方法接收散点图数据并生成音频片段,将每个数据点描述为一个短的声音片段,其中y值对应于音调,x值对应于到达时间。在
每个数据点都有一个对应的短音调,称为blip
,其中y值对应于音调,x值对应于到达时间。y值越高的数据点对应的点间距越大。在
安装
sonipy
将可以从命令行安装pip,如下所示:
pip install sonipy
现在,您可以克隆存储库并自己安装:
^{pr2}$示例简易设置
对于两个长度相同的数组(称为x和y),可以使用以下命令对它们进行声波处理:
fromsonipy.sonifyimportSonifyToolTone=SonifyTool(x,y)Tone.play()Tone.save()
扩展设置
如果您希望对声音化输入进行更精细的控制,可以按如下方式调整底层参数。有关所涉及参数的详细信息,请参阅下面的参数输入部分。在
fromsonipy.sonifyimportSonifyToolC4=261.6# Hzfrequency_args={'frequency_min':C4,'frequency_max':C4*4# 'cents_per_value' : -680,# 'value_min' : 0,# 'value_max' : 1,}duration_args={'time_total':2000,# ms# 'time_min' : 100, # ms# 'time_max' : 800, # ms}duration_scale=1./2000.# x value / time (ms)Tone=SonifyTool(x,y,frequency_args=frequency_args,duration_args=duration_args,# duration_scale = duration_scale,bliplength=0.5)Tone.play()Tone.SaveTone()
参数输入
频标参数:
所有频率参数都输入到frequency_args参数中。以下输入均被接受。在
- 一个最小频率及其对应的最小y值
- 最大频率及其对应的最大y值
- 音高的变化(以cents)超过y值参数的变化
时间尺度参数:
默认情况下,声音文件为2秒。时间参数只需定义一个持续时间刻度(以秒/x值为单位)即可输入。或者交替地传递duration_args字典,其中包含一些总时间、点之间的最小增量时间或点之间的最大增量时间。在
- 声音文件的总时间
- 相对于x值参数的变化,时间(以秒为单位)的变化
演示
几个Jupyter笔记本电脑演示,演示了sonipy的一些用例和示例 here。在
瞬时动力
这个代码是作为TransientZoo的一部分开发的,这是一个公民科学项目,允许参与者,包括盲人和视障人士,使用声音对超新星光曲线进行分类。在天文学中,光曲线描述了一个特定天体物理物体的亮度随时间的变化。更多信息,请参见第235届美国天文会议的twitter帖子和海报。在
特别感谢
感谢Allen Downey教授允许将thinkDSP代码托管在这个存储库中,以便于分发。没有它这项工作是不可能的。关于他的书Think DSP:Digital Signal Processing in Python的更多详细信息,请参阅他的教科书库https://github.com/AllenDowney/ThinkDSP。在
归属
如果您认为该软件包对您的研究有用,请引用我们的JOSS论文。在
- 项目
标签: