voxudio 0.7.0

A real-time audio processing library with ONNX runtime support
Documentation
# Voxudio


[English Version](README-en.md)

Voxudio 是一个用 Rust 编写的高性能音频处理库,专注于语音处理和音色转换功能。它提供了一套完整的工具,用于音频采集、播放、语音活动检测、说话人特征提取、音色转换、OPUS编解码、在线特征提取和语音识别。

## 特性


- 🎤 **音频设备管理**
    - 音频采集:支持从各种音频输入设备采集数据
    - 音频播放:支持实时音频播放
- 🎵 **音频编解码支持**
    - OPUS:支持OPUS音频格式的编码和解码
- 🔍 **语音活动检测 (VAD)**
    - 实时检测音频中的语音活动
    - 精确区分语音和非语音部分
- 👤 **说话人特征提取 (SEE)**
    - 提取 256 维说话人特征向量
    - 支持说话人识别和验证
- 🎭 **音色转换 (TCC)**
    - 实时音色转换
    - 保持原始语音内容和情感
- 🧑‍🔬 **在线特征提取器(FBank/MFCC/Whisper FBank)**
    - 支持从音频信号中实时提取滤波器组(FBank)、梅尔频率倒谱系数(MFCC)、Whisper FBank 特征
    - 算法主要来自 [kaldi-native-fbank]https://github.com/csukuangfj/kaldi-native-fbank
    - 支持通过 builder 的 `with_*` 方法灵活配置参数(如梅尔滤波器组数、窗函数类型等)
- 🗣️ **自动语音识别(ASR)**
    - **全新流式 ASR**:基于 [X-ASR-zh-en 模型]https://github.com/Gilgamesh-J/X-ASR.git的 Zipformer2 transducer 架构
    - 支持多种Chumk配置:160ms / 480ms / 960ms / 1920ms
    - 纯 ONNX Runtime 实现,低延迟、高质量
    - 流式逐 token 输出,适合实时应用场景
    - 提供 `AutomaticSpeechRecognizer` API(流式)和 `AutomaticSpeechRecognizerLegacy`(非流式)
    - 详见 [ASR 模块文档]src/model/asr.rs
-**音频变速不变调(Sonic)**
    - 基于 [Sonic]https://github.com/waywardgeek/sonic 库的高质量音频变速不变调处理
    - 支持变速不变调(speed)、变调(pitch)、变速变调(rate)、音量调节(volume)
    - 支持 f32 和 i16 采样格式,流式和一次性处理
- 📱 **跨平台支持**
    - 支持 Windows、Linux、macOS
    - Android 平台支持
    - iOS 平台尚未全面测试

## 模型文件


由于模型文件较大,未包含在版本控制中。请从以下地址下载模型文件:
https://github.com/mzdk100/voxudio/releases/tag/model

### 模型文件说明


下载后将模型文件放置在项目根目录的 `checkpoint` 文件夹中。

#### ASR 模型(新增)


```bash
git lfs install
git clone https://www.modelscope.ai/Gilgamesh-J/X-ASR-zh-en.git
```
将`deployment/models`复制到`../checkpoint`中

## 安装


将以下依赖添加到你的 `Cargo.toml` 文件中:

```shell
cargo add voxudio
```

## 使用示例


1. [音频采集]examples/ac.rs
2. [音频播放]examples/ap.rs
3. [语音活动检测]examples/vad.rs
4. [音色转换]examples/tcc.rs
5. [OPUS编解码]examples/oc.rs
6. [在线特征提取]examples/offe.rs
7. [自动语音识别]examples/asr.rs
8. [音频变速不变调]examples/ss.rs
9. [Android 使用示例]examples/android
   运行 Android 示例:
    1. 确保已安装 Android SDK 和 NDK
    2. 进入 examples/android 目录
    3. 在 Windows 上运行:
   ```bash
   run.bat

   ``

    Linux/macOS 上运行:

   ```bash

   ./run.sh

   ```

## 性能优化


- 使用 ONNX Runtime 进行高效��模型推理
- 基于 Tokio 的异步处理
- 优化的音频数据处理流程

## 许可证


本项目采用 Apache-2.0 许可证。详见 [LICENSE](../LICENSE) 文件。

## 贡献


欢迎提交 Issue 和 Pull Request!

1. Fork 本项目
2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的修改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 开启一个 Pull Request

## 联系我们


如果你有任何问题或建议,欢迎提交 Issue 或通过以下方式联系我们:

- Issue Tracker: github.com/mzdk100/voxudio/issues
- Email: mzdk100@foxmail.com