声音景观合成和增强库
项目描述
scaper
声音景观合成和增强库
有关详细信息,请参阅文档。
关于scaper的动机及其应用,请参阅scaper-paper
Scaper:声音景观合成和增强库
J. Salamon, D. MacConnell, M. Cartwright, P. Li, and J. P. Bello
In IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), New Paltz, NY, USA, Oct. 2017.
安装
非Python依赖项
Scaper有一个非Python依赖项
- FFmpeg: https://ffmpeg.cpp.org.cn/
如果您在Windows上安装Scaper,您还需要
在Linux/macOS上,SoX被SoxBindings取代,它显著更快,在Scaper中提供更好的运行时性能。在这些平台上,在调用pip install scaper
时自动安装SoxBindings(见下文)。
Linux/macOS
如果您使用Anaconda(或miniconda)来管理您的Python环境(推荐),您可以使用conda
在macOS/Linux上安装FFmpeg
conda install -c conda-forge ffmpeg
macOS
在macOS上,可以使用homebrew安装FFmpeg
brew install ffmpeg
Linux
在Linux上,您可以使用您发行版的包管理器,例如在Ubuntu(15.04 "Vivid Vervet"或更高版本)上
sudo apt-get install ffmpeg
注意:在早期版本的Ubuntu上,ffmpeg可能会指向一个Libav二进制文件,这不是正确的二进制文件。如果您正在使用Anaconda,可以按照前面描述的方式安装正确版本,通过调用conda install -c conda-forge ffmpeg
。否则,您可以从ffmpeg网站获取静态二进制文件。
Windows
在Windows上,您可以使用提供的安装二进制文件
- SoX: https://sourceforge.net/projects/sox/files/sox/
- FFmpeg: https://ffmpeg.cpp.org.cn/download.html#build-windows
安装Scaper
安装scaper最简单的方法是使用pip
,这还会在需要时安装所需的Python依赖项。要使用pip安装scaper,请简单地运行
pip install scaper
要从源代码安装scaper的最新版本,克隆或拉取最新版本
git clone git@github.com:justinsalamon/scaper.git
然后进入源代码文件夹,并使用pip安装以处理Python依赖项
cd scaper
pip install -e .
教程
为了帮助您开始使用scaper,请参阅这个分步教程。
示例
import scaper
import numpy as np
# OUTPUT FOLDER
outfolder = 'audio/soundscapes/'
# SCAPER SETTINGS
fg_folder = 'audio/soundbank/foreground/'
bg_folder = 'audio/soundbank/background/'
n_soundscapes = 1000
ref_db = -50
duration = 10.0
min_events = 1
max_events = 9
event_time_dist = 'truncnorm'
event_time_mean = 5.0
event_time_std = 2.0
event_time_min = 0.0
event_time_max = 10.0
source_time_dist = 'const'
source_time = 0.0
event_duration_dist = 'uniform'
event_duration_min = 0.5
event_duration_max = 4.0
snr_dist = 'uniform'
snr_min = 6
snr_max = 30
pitch_dist = 'uniform'
pitch_min = -3.0
pitch_max = 3.0
time_stretch_dist = 'uniform'
time_stretch_min = 0.8
time_stretch_max = 1.2
# Generate 1000 soundscapes using a truncated normal distribution of start times
for n in range(n_soundscapes):
print('Generating soundscape: {:d}/{:d}'.format(n+1, n_soundscapes))
# create a scaper
sc = scaper.Scaper(duration, fg_folder, bg_folder)
sc.protected_labels = []
sc.ref_db = ref_db
# add background
sc.add_background(label=('const', 'noise'),
source_file=('choose', []),
source_time=('const', 0))
# add random number of foreground events
n_events = np.random.randint(min_events, max_events+1)
for _ in range(n_events):
sc.add_event(label=('choose', []),
source_file=('choose', []),
source_time=(source_time_dist, source_time),
event_time=(event_time_dist, event_time_mean, event_time_std, event_time_min, event_time_max),
event_duration=(event_duration_dist, event_duration_min, event_duration_max),
snr=(snr_dist, snr_min, snr_max),
pitch_shift=(pitch_dist, pitch_min, pitch_max),
time_stretch=(time_stretch_dist, time_stretch_min, time_stretch_max))
# generate
audiofile = os.path.join(outfolder, "soundscape_unimodal{:d}.wav".format(n))
jamsfile = os.path.join(outfolder, "soundscape_unimodal{:d}.jams".format(n))
txtfile = os.path.join(outfolder, "soundscape_unimodal{:d}.txt".format(n))
sc.generate(audiofile, jamsfile,
allow_repeated_label=True,
allow_repeated_source=False,
reverb=0.1,
disable_sox_warnings=True,
no_audio=False,
txt_path=txtfile)
如何贡献
如果您想向此存储库贡献功能/错误修复,请按照以下步骤操作
- 创建一个描述功能/修复的问题。
- 我将在问题线程中回复,以确定是否可以将功能/修复添加。
- 在问题线程中讨论设计/实现细节,并达成共识。
- 一旦达成共识(仅在此之后),开始一个拉取请求(PR)。进一步的讨论可以在PR线程中继续。
- 实现功能/修复,确保所有当前单元测试通过,并添加新测试以保持100%的测试覆盖率。还应相应地更新内联文档字符串以及主要文档文件。
- 一旦拉取请求准备好审查,请请求代码审查。
- 如果有任何请求更改,请修复拉取请求。重复步骤5-7,直到PR获得批准。
- 一旦PR获得批准,我将将其合并到主分支(并且很可能创建一个新的版本)。
重要提示:请在创建拉取请求之前,在问题中讨论拟议的功能/修复。
项目详情
下载文件
下载您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
scaper-1.6.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48ff17d727b11a64dddedd89a621e971b31eb7a9caab516f1839aa5bd6cf8e02 |
|
MD5 | 42654aeeb5c3b877d974b131d2270f27 |
|
BLAKE2b-256 | 0a10d4be24a905cb38e7b813eba389f1d46b0281e4ff5460f1782ee3ffea140d |
scaper-1.6.5-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c42bf0fb2fe9805bbb1a96d1589dbc3416e059482191da94a7e8acfb9d949ca6 |
|
MD5 | 46d551439df83b4f9a597bc210898357 |
|
BLAKE2b-256 | dbb787e5d1b900883829eb6cedef5193dff39865d302d288353eb5517069afc2 |