将受控降级引入音频的工具

audio-degrader的Python项目详细描述


Build Status

音频降级器

最新版本:1.2.3

python中的音频降级工具箱,带有命令行工具。对音频应用受控降级是有用的。

安装

pip install audio_degrader

程序依赖于soxffmpegrubberband,因此您可能也需要安装它们。建议在osx中使用brew,在linux中使用apt-get(对于rubberband,在linux中使用rubberband-cli)。

python包的使用

importaudio_degraderasadaudio_file=ad.AudioFile('input.wav','./tmp_dir')fordinad.ALL_DEGRADATIONS.values():printad.DegradationUsageDocGenerator.get_degradation_help(d)degradations=ad.ParametersParser.parse_degradations_args(['normalize','gain,6','dr_compression,3','equalize,500,10,30'])fordindegradations:audio_file.apply_degradation(d)audio_file.to_wav('output.wav')audio_file.delete_tmp_files()

命令行工具的使用

脚本audio_degrader与python包一起安装。

# e.g. mix with restaurant08.wav with snr=10db, then amplifies 6db, then compress dynamic range
$ audio_degrader -i input.mp3 -d mix,https://github.com/hagenw/audio-degradation-toolbox/raw/master/AudioDegradationToolbox/degradationData/PubSounds/restaurant08.wav,10 gain,6 dr_compression,3 -o out.wav

# for more details:
$ audio_degrader --help

一小部分声音和脉冲响应与脚本一起安装,脚本中可以列出:

$ audio_degrader -l

# these relative paths can be used directly in the script too:
$ audio_degrader -i input.mp3 -d mix,sounds/applause.wav,-3 gain,6 -o out.wav

应用程序

  • 评估不同退化程度下的音乐信息检索系统
  • 为机器学习系统的培训准备扩充数据

它类似于Audio Degradation Toolbox in Matlab by Sebastian Ewert and Matthias Mauch(对于matlab)。

一些示例

# Mix input with a sound / noise (e.g. using installed resources)
$ audio_degrader -i input.wav -d mix,sounds/applause.wav,-3 -o out.wav


# Instead of paths, we can also use URLs
$ audio_degrader -i input.wav -d mix,https://www.pacdv.com/sounds/ambience_sounds/airport-security-1.mp3,-3 -o out.wav


# Microphone recording style
$ audio_degrader -i input.wav -d gain,-15 mix,sounds/ambience-pub.wav,18 convolution,impulse_responses/ir_smartphone_mic_mono.wav,0.8 dr_compression,2 equalize,50,100,-6 normalize -o out.wav


# Resample and normalize
$ audio_degrader -i input.mp3 -d resample,8000 normalize -o out.wav


# Convolution (again impulse responses can be resources, full paths or URLs)
$ audio_degrader -i input.wav -d convolution,impulse_responses/ir_classroom_mono.wav,0.7 -o out.wav
$ audio_degrader -i input.wav -d convolution,http://www.cksde.com/sounds/month_ir/FLANGERSPACE%20E001%20M2S.wav,0.7 -o out.wav

音频格式

输入

audio_degrader依赖ffmpeg进行音频读取,因此它可以读取任何格式(甚至视频)。

输出

audio_degrader输出格式始终为wav立体声pcm_f32le(原始音频文件的采样率)。

此输出wav文件可以使用ffmpeg轻松转换为其他格式,例如:

$ ffmpeg -i out.wav -b:a 320k out.mp3
$ ffmpeg -i out.wav -ac 2 -ar 44100 -acodec pcm_s16le out_formatted.wav

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

推荐PyPI第三方库


热门话题
java为什么大摇大摆的ui不显示带注释的REST方法?   soapweb服务概念。(来自WSDL的Java或来自Java的WSDL)   java Junit测试日志语句   java如何使Sonar与XMLInputFactory和woodstox库注册的实现兼容?   java无法启动活动组件信息{com.example.countryselect/com.example.countryselect.OfferSelect}   java在2d数组中递增对象   java在序列化和反序列化期间如何调用构造函数?   JavaFx:在按钮内设置布尔值并将其取出   java GWT如何异步发送表单?   java编译错误。木卫一。必须捕获或声明IOException错误   java无法解释的长时间停止在G1 Collector中的并发标记步骤期间世界暂停   java计算J2EE应用程序中对象的出现次数   Java使用相同的变量名和值定义字符串常量   java Samsung键盘退格不适用于SearchView   java将Spring Web应用程序部署到JBoss WebApplicationContext异常   java在加载jsp时试图调用servlet   Vertx JDBC NoSuchMethodError’java。sql。连接io。农业的。应用程序编程接口。交易交易整合。getConnection()   JAVAutil。scanner使用scanner读取Java文件