协调您的音频媒体:转换,规范化,丰富和验证。

harmonizer的Python项目详细描述


和声器

PyPI versionPyPI - Python Version

此库帮助您转换规范化丰富验证音乐库。 它完全满足了我们在imr.party的需要,以协调我们的网络广播的音乐库。

该库附带了一个cli工具,允许您处理目录中的音频文件,以创建所有文件的标准化mp3版本,丰富来自不同来源(discogs、spotify)的元数据。

它的功能

  • 音频转换:将flac、mp3、aac(m4a)转换为mp3(128k、192k、320k)。
  • 音频规范化:峰值规范化输入音频。标准化表示在净空比(0.1意味着最大峰值将我的最大体积的90%)。
  • 元数据提取
    • 音频标记:从音频中提取并写入json元数据结果。
    • 音频指纹:从音频中提取指纹并写入json元数据结果。
  • 元数据扩展
    • 使用discogs api查找与音频曲目相关的发行版。领取代币here
    • 使用spotify api在其目录中查找音频曲目。获取你的api秘密here
  • covert art extraction(仅限MP3):将covert art提取到图像文件中。
  • validation:运行各种完整性检查以断言输入音频符合您在配置中定义的规则。
    • 最小输入比特率(仅限MP3)
    • 强制性音频标签
    • 接受的输入mime类型

输出

所有文件处理将创建2或3个文件:

  • 输入音频文件的MP3转换和标准化音频版本。
  • 元数据json文件(检查metadata_output.json
  • 封面图片文件(如果存在于原始文件中)

安装

系统依赖性

您的系统上需要有ffmpeg

苹果操作系统:$ brew install ffmpeg
Linux系统:$ sudo apt install ffmpeg

PIP

$ pip install harmonizer

cli用法

Usage: harmonizer [OPTIONS] AUDIO_INPUT_DIR AUDIO_OUTPUT_DIR

  Please provide an audio_input_dir path and an audio_output_dir path to
  launch harmonization of your files.

Options:
  --json-out DIRECTORY  Path to directory to which  JSON metadata will be
                        written to.
  --img-out DIRECTORY   Path to directory to which extracted cover arts will
                        be written to.
  -c, --conf FILE       Path to your Harmonizer YAML configuration.
  --help                Show this message and exit.

配置文件结构

结帐example_config.yml

测试

$ python setup.py test

待办事项:

  • 文档字符串
  • 更多文档
  • 更好的discogs搜索和匹配算法
  • 通过配置进行更多管道控制

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

推荐PyPI第三方库


热门话题
安卓如何在java字符串中获取RATE的值   java ANT在哪里输出编译器错误?   在java中,while循环在何处启动对象   javacom。谷歌。格森。内部的LinkedTreeMap无法强制转换到我的类   java单选按钮。isSelected()方法未返回正确的响应   嵌入式系统中applet中的java相对码基字段   如何在eclipse中将Java应用程序附加到jvm探查器?   java为什么Android应用程序崩溃?   在java中拖放上传后保持文件夹结构   爪哇多领导人选举问题   java Springs RestTemplate如何处理postForEntity()中的错误响应   Java如何用前导零递增整数字符串?   java Android将文本作为图像共享给其他应用程序   Java搜索替换   java isDirectory()不适用于UNIX目录   java我们可以得到显示测试类是否通过或失败的TestNG报告吗   Java类对象排序和分组   简单Java幂递归   java在处理MethodArgumentNotValidException时如何访问请求对象?