9 个版本
0.0.15 | 2023 年 2 月 17 日 |
---|---|
0.0.14 | 2022 年 6 月 3 日 |
0.0.13 | 2022 年 3 月 27 日 |
0.0.12 | 2021 年 10 月 21 日 |
0.0.5 | 2021 年 5 月 14 日 |
#168 在 音频 分类中
每月 53 次下载
385KB
5.5K SLoC
Babycat 是一个音频解码和操作库
功能
解码、重采样和编码
Babycat 的核心功能包括
- 解码 MP3、FLAC 和 WAV。
- 将音频重采样到不同的帧率。
- 将波形编码为 WAV。
Rust、Python、WebAssembly 和 C 的绑定
Babycat 可以使用以下目标语言
- Rust。Babycat 大部分是用 Rust 编写的,除了几个 C 依赖项(如 libsamplerate)。
- Python。Babycat 的 Python 绑定允许您解码、重采样和编码音频,而不会受到 Python 全局解释器锁(GIL)的拖累。Babycat 还与 Jupyter 集成,允许您在 Jupyter 笔记本中播放和收听由 Babycat 解码的音频流。
- WebAssembly。Babycat 生成可在浏览器或 Node.js 中运行的 JavaScript/WebAssembly 绑定。
- C。Babycat 提供了一个 C API,这对于在 C 中创建音频分析项目或为上述未提及的语言创建 Babycat 绑定都很有用。
高效的多线程和并行处理
Babycat 被设计成可以在多个 CPU 核心上并行解码多个音频文件。Babycat 的 Python 绑定允许进行并行音频解码,而不会受到 Python 全局解释器锁的拖累。
基于 MIT 许可证的开放源代码
音频生态系统中充满了昂贵的专有软件包,或者受 (L)GPL 许可证限制的代码,限制了您使用它们的方式。相比之下,Babycat 基于 MIT 许可证,允许您免费以任何方式使用 Babycat。
Babycat 在行业中经过实战检验
Babycat由Neocrym构建并积极维护,Neocrym是一家利用人工智能寻找和推广全球最伟大音乐家的唱片公司。Neocrym使用Babycat解码数百万首歌曲,作为机器学习模型的音频特征工程管道的一部分。
了解更多
源代码和问题
您可以在github.com/babycat-io/babycat找到Babycat的源代码。
API文档和版本
babycat.io是我们主要的文档网站。您可以在以下位置找到每个绑定的文档和版本:
绑定 | 文档 | 版本 |
---|---|---|
Rust | docs.rs/babycat | crates.io/crates/babycat |
Python | babycat.io/api/python | pypi.org/project/babycat |
WebAssembly | babycat.io/api/wasm | npmjs.com/package/babycat |
C | babycat.io/api/c | 尚未发布。您可以从源代码编译。 |
教程
您可以通过我们的长篇教程了解更多关于如何使用Babycat的信息
致谢
Babycat的第一个版本是Neocrym的一个内部项目,由Ritik Mishra编写。从那时起,代码已被James Mishra扩展并开源。
Babycat建立在许多高质量的开放源代码项目之上,包括
- Symphonia用于音频解码。
- libsamplerate用于高质量的音频重采样。
- Hound用于WAV编码。
- PyO3用于生成Python绑定。
- cbindgen用于生成C绑定。
- wasm-bindgen用于生成WebAssembly绑定。
Babycat的目标是在现有的音频生态系统之上提供简单且一致的API,同时不牺牲性能、可移植性或许可。
依赖项
~5–20MB
~339K SLoC