头部跟踪的实时动态双耳合成。

pybinsim的Python项目详细描述


https://travis-ci.org/pyBinSim/pyBinSim.svg?branch=master

皮宾西姆

安装

$ 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。

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

推荐PyPI第三方库


热门话题
java在通配符泛型类型和泛型类型之间未经检查的强制转换   java Eclipse SWT Hello world教程:无法将显示解析为类型   java如何向远程用户发送注销消息?   java RDD之后的空文件是什么。保存ASTEXTFILE?   用户界面在java中创建一个htmljs UI GCalendar   Java多个哈希映射指向同一个键   Java Dowhile循环不工作?   oraclejava类。组织。阿帕奇。梁sdk。util。UserCodeException:java。sql。SQLException:无法创建PoolableConnectionFactory   java是org类型。日食用户界面。文本编辑器。*看不见   java有没有从弹出窗口复制eclipse中变量值的插件或快捷方式?   java getSubimage为我提供了期望值null   java我想让它变得更简单   swing AWTEventQueue0一直在运行,java中的程序变得非常慢   java Solr实例化类时出错:自定义类   java将ListView适配器移植到RecyclerView适配器   c#测试混合web和桌面应用程序的安全性