头部跟踪的实时动态双耳合成。
pybinsim的Python项目详细描述
皮宾西姆
安装
$ conda create --name binsim python=3.5 numpy $ source activate binsim $ pip install pybinsim
在linux上,在调用pip install pybinsim之前,确保安装了gcc和libfftw和portaudio的开发头。 对于ubuntu:
$ apt-get install gcc portaudio19-dev libfftw3-dev
运行
用这样的内容创建pyBinSimSettings.txt文件
soundfile signals/test441kHz.wav blockSize 512 filterSize 16384 filterList brirs/filter_list_kemar5.txt maxChannels 2 samplingRate 44100 enableCrossfading True useHeadphoneFilter False loudnessFactor 0.5 loopSound False
开始双耳模拟
import pybinsim import logging pybinsim.logger.setLevel(logging.DEBUG) # defaults to INFO #Use logging.WARNING for printing warnings only with pybinsim.BinSim('pyBinSimSettings.txt') as binsim: binsim.stream_start()
说明
基本原则:
根据输入通道(波形文件通道)的数量,创建相应数量的虚拟声源。每个声源的滤波器可通过OSC信息进行选择和激活。这些信息基本上包含了 应为其切换筛选器的源的索引,以及用于寻址正确筛选器的标识符字符串参数值和过滤器之间的对应关系由过滤器列表决定,该列表可以针对特定的用例进行单独调整。
配置参数说明:
- 声音文件:
- 定义在启动时回放的*.wav文件。声音文件最多可包含maxchannels音频通道。还接受由“”分隔的多个文件;例如:“soundfile signals/sound1.wav signals/sound2.wav
- 块大小:
- 每个块处理的样本数。低值减少延迟但增加cpu负载。
- 过滤器大小:
- 定义加载了筛选器列表的筛选器的筛选器大小。过滤器大小应该是块大小的倍数。
- 最大频道: 在运行时可以控制的最大声源/音频通道数目。maxChannels的值必须匹配或超过声音文件的通道数。
- 采样:
- 过滤器和声音文件的采样率。注意:无自动采样率转换。
- 启用交叉衰落:
- 启用音频块之间的交叉淡入。设置“false”或“true”。
- 使用耳机过滤器:
- 启用头音均衡筛选器集应包含标识符为hpfilter的筛选器。设置“False”或“True”。
- 响度系数:
- 总输出响度系数。注意:可能会出现剪辑
- 环音:
- 启用声音文件或声音文件列表的循环。设置“False”或“True”。
OSC消息和筛选器列表:
筛选列表中的示例行: 165 2 0 0 0 0布里尔/Kemar5/Kemar_0_165.wav
要为wav文件的第三个频道(计数从零开始)激活此筛选器,您必须将以下消息发送到pybinsim运行的PC(端口10000):
/pyBinSim 2 165 2 0 0 0 0
如果要播放另一个声音文件,请发送:
/pyBinSimFile folder/file_new.wav
或声音文件列表
/pyBinSimFile folder/file_1.wav#folder/file_2.wav
音频文件必须位于运行pybinsim的PC上。文件不通过网络传输。
演示
检查https://github.com/pyBinSim/AppExamples存储库中是否有现成的演示。
参考:
请引用我们的工作:
Neidhardt,A.克莱因,F;Knoop,N.和K.OLLMER,T,“灵活的Python工具用于动态双耳合成应用”,第一百四十二AES公约,柏林,2017。