#audio-processing #frame #waveform #decoding #python-bindings #wasm-bindings

bin+lib babycat

一个音频解码和操作库,支持 C、Python 和 WebAssembly 绑定

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音频 分类中

Download history 11/week @ 2024-03-09 1/week @ 2024-03-16 4/week @ 2024-03-30 1/week @ 2024-04-06

每月 53 次下载

MIT 许可证

385KB
5.5K SLoC

Babycat Logo

Babycat 是一个音频解码和操作库

Rustdoc status crates.io status Rust dependency status

功能

解码、重采样和编码

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建立在许多高质量的开放源代码项目之上,包括

Babycat的目标是在现有的音频生态系统之上提供简单且一致的API,同时不牺牲性能、可移植性或许可。

依赖项

~5–20MB
~339K SLoC