#wav #encode #decode #data-file #convert-file #file-format

bin+lib data2sound

一个将数据转换为声音以及相反方向的库,支持WASI(无依赖)

5个版本

0.2.2 2023年3月1日
0.2.1 2023年2月28日
0.1.6 2023年2月26日

#451 in 音频

每月50次下载

MIT许可

15KB
175 代码行

数据到声音

一个简单的crate,可以将数据转换为声音,也可以将声音转换为数据。声音文件格式是WAV。你可以将其用作库或命令行工具,也支持WASI。(无依赖)

最低支持的Rust版本

最低支持的Rust版本是1.59.0。

注意

声音频率是202860Hz(202.86kHz),声音是单声道的。声音以16位编码。

缺点

  • WAV文件大小限制为4GB,因此你不能在单个文件中存储超过4GB的数据。

优点

  • 声音文件是标准的.wav文件,因此你可以用任何音频播放器播放它。
  • 声音文件的大小将与数据文件相同。

用法

使用此crate有两种方式。作为库,或作为命令行工具。库是工具的核心,因此你可以使用库来创建自己的工具。我们还支持WASI,因此你可以在WASI环境中使用cli。

将其添加到你的Cargo.toml中

[dependencies]
data2sound = "0.2.0"

有关库的更多信息,请参阅文档。

命令行界面

使用cargo安装工具

cargo install data2sound

运行工具

data2sound --help

将文件转换为声音

data2sound encode input_file output_file.wav

将声音文件转换为数据

data2sound decode input_file.wav output_file

WASI

你可以在WASI环境中使用CLI。你需要做的就是从发布页面安装wasm文件,并用wasmtimewasmer运行它。

使用GitHub CLI安装

gh release download -R TheAwiteb/data2sound -p "*wasm32-wasi.zip"
unzip *wasm32-wasi.zip # The zip file contains the wasm

Wasmtime

你需要访问输入文件所在的目录,以及输出文件将被创建的目录。你可以使用--dir标志来完成。帮助信息

wasmtime data2sound.wasm -- --help

编码和解码

wasmtime data2sound.wasm --dir . --  encode input_file output_file.wav
wasmtime data2sound.wasm --dir . --  decode input_file.wav output_file

Wasmer

与wasmtime相同。帮助信息

wasmer data2sound.wasm -- --help

编码和解码

wasmer data2sound.wasm --dir . --  encode input_file output_file.wav
wasmer data2sound.wasm --dir . --  decode input_file.wav output_file

用例

该软件包可用于在声音文件中存储数据,并从声音文件中检索数据。这在将数据存储在声音文件中非常有用。

基准测试

以下基准测试是在4.600GHz的12代英特尔酷睿i7-12700H CPU和16GB内存上进行的。

编码

文件大小 音频文件大小 音频长度 速度 链接
2687.94MB 2687.94MB 01:28:13 1.47秒 Soundcloud链接
35.3MB 35.3MB 00:01::27 39.07毫秒 Soundcloud链接

解码

文件大小 音频文件大小 音频长度 速度 链接
2687.94MB 2687.94MB 01:28:13 1.44秒 Soundcloud链接
35.3MB 35.3MB 00:01::27 38.97毫秒 Soundcloud链接

免责声明

本工具旨在教育目的,它解释了如何在音频文件中保存数据。不推荐利用此工具使用云音频存储服务来存储您的数据,因为您的账户可能会被封禁。

许可

本项目遵循MIT许可协议。有关更多信息,请参阅LICENSE文件。

无运行时依赖