未提供项目说明

AudioDAG的Python项目详细描述


听力计

CIQuality Gate Status

从单个组件构建数字音频信号,为心理物理刺激生成而设计。支持延迟构造或内存缓存

安装

pip install audiodag

使用

信号分量

音频_信号组件.Component类设计用于处理描述数字信号的某个方面的函数。它处理信号特性(如幅度、持续时间)和硬件特性(如采样率、削波和包络等)的规范

单个信号分量是通过继承基分量类来定义的。子级应该定义.u generate_f方法并处理任何其他参数。例如,要创建正弦波:

^{pr2}$

example_sine

在访问Component.y时调用generation函数,可以选择使用cache=True进行缓存,或者在每次调用时动态生成。包络线在信号生成后立即应用(默认值=常量)。在

音频中定义了一些预定义的音调和噪声信号_信号组件噪音和音调。在

复合信号分量

复合组件处理组合组件(和/或其他复合组件)。CompoundComponent类自动创建一个生成函数,该函数组合所提供组件的生成函数。与单个事件类似,只有在调用top objects.y(使用可选缓存)时才对其进行计算。这意味着在分配任何时间或内存之前,可以组合组件的整个DAG(或树)。在

在简单的情况下,可以通过将组件相乘来构造这些组件。例如,要向正弦波添加噪波:

简单-mul

fromaudiodag.signal.digital.conversionimportdb_to_linfromaudiodag.signal.components.sine_componentimportSineComponentfromaudiodag.signal.components.noise_componentimportNoiseComponentsin=SineComponent(freq=12,mag=1,fs=5000,duration=1000)noise=NoiseComponent(fs=5000,duration=1000,mag=db_to_lin(ref=1,db_change=-80))compound_component=sin*noisecompound_component.plot_subplots(show=True)

example_mul

简单-从列表

在更复杂的情况下,例如需要不等权重或新信封,可以在列表中指定组件。在

fromaudiodag.signal.digital.conversionimportdb_to_linfromaudiodag.signal.components.sine_componentimportSineComponentfromaudiodag.signal.components.noise_componentimportNoiseComponentfromaudiodag.signal.components.componentimportCompoundComponentfromaudiodag.signal.envelopes.templatesimportCosEnvelopesin=SineComponent(freq=12,mag=1,start=100,fs=5000,duration=1000)noise=NoiseComponent(fs=5000,duration=1000,mag=db_to_lin(ref=1,db_change=-80))compound_component=CompoundComponent([sin,noise],envelope=CosEnvelope)compound_component.plot_subplots(show=True)

example_simple

复杂

fromaudiodag.signal.digital.conversionimportdb_to_linfromaudiodag.signal.envelopes.templatesimportIncreasingEnvelopefromaudiodag.signal.components.componentimportCompoundComponentfromaudiodag.signal.components.noise_componentimportNoiseComponentfromaudiodag.signal.components.sine_componentimportSineComponentstart=0sine_4=SineComponent(start=start,duration=1400,freq=4)start=200duration=600sine_2_6=CompoundComponent([SineComponent(start=start,duration=duration,freq=2),SineComponent(start=start,duration=duration,freq=6)])start=600duration=1000sine_2_12=CompoundComponent([SineComponent(start=start,duration=duration,freq=2),SineComponent(start=start,duration=duration,freq=12)])sine_8_10=CompoundComponent([SineComponent(start=start,duration=duration,freq=8),SineComponent(start=start,duration=duration,freq=10),sine_2_12])noise=NoiseComponent(start=0,duration=1000,envelope=IncreasingEnvelope,mag=db_to_lin(ref=1,db_change=-120))signal=CompoundComponent([sine_4,sine_2_6,sine_8_10,noise])signal.plot_subplots(show=True)

example_complex

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何忽略缓冲读取器中在“”之后的行的其余部分,或行上的特定字符?   java在db中创建空对象或稍后保存   java如何实现UI无关的后台工作任务   java未能在Android中从BaseAdapter扩展的类中启动Tactivity?   java斐波那契迭代移动数组[]   安卓从文件读取提供了java。木卫一。StreamCorruptedException:无效的流标头:73720027   java计算矩形中的六边形数?   仅使用Java 1.5(或更早版本)读写XML   java如果所有元素都以相同的bucked结尾,为什么要进行大小调整?   java Apache POI Excel在xx中发现无法读取的内容。xlsx   swing我可以在普通java应用程序中使用GWTGUI吗?   来自自定义Java客户端的http删除请求的行为与邮递员不同   运行批处理文件时,java当前目录无效   使用TypeReference将java字符串转换为ArrayList<STRING>   documentlistener突出显示所有匹配词Java