Voice Toolkit - Rust 语音处理工具库
voice-toolkit
是一个功能强大的 Rust 语音处理工具库,提供统一的接口来处理语音转文本(STT)、
文本转语音(TTS)和音频处理任务。该库基于 Whisper 模型提供高质量的语音识别功能,
支持多种音频格式转换和实时语音处理。
主要特性
- 语音转文本 (STT): 基于 OpenAI Whisper 模型的高质量语音识别
- 文本转语音 (TTS): 基于 Index-TTS 的语音合成功能
- 音频处理: 支持多种音频格式的转换和处理
- 实时流式处理: 支持实时音频流的转录
- 语音活动检测 (VAD): 智能检测语音片段,提高处理效率
- 跨平台支持: 支持 Windows、macOS 和 Linux
- GPU 加速: 可选的 CUDA、Vulkan 和 Metal 加速支持
快速开始
基本依赖
在 Cargo.toml
中添加依赖:
[]
= { = "0.15.0", = ["stt", "tts", "audio"] }
语音转文本示例
use transcribe_file_unified;
async
音频格式转换示例
use audio;
async
文本转语音示例
use tts;
async
功能特性
STT 功能
- 支持多种音频格式:WAV、MP3、FLAC、M4A、OGG 等
- 自动音频格式转换和预处理
- 支持实时流式转录
- 集成语音活动检测 (VAD)
- 性能监控和基准测试
TTS 功能
- 基于 Index-TTS 的高质量语音合成
- 支持多种输出格式
- 可扩展的引擎架构
音频处理功能
- 音频格式转换
- 音频重采样
- 元数据提取
- Whisper 兼容格式转换
特性标志
该库使用特性标志来控制功能模块的启用:
stt
: 启用语音转文本功能(默认启用)tts
: 启用文本转语音功能audio
: 启用音频处理功能(默认启用)streaming
: 启用实时流式处理(需要stt
)cuda
: 启用 CUDA GPU 加速(需要stt
)vulkan
: 启用 Vulkan GPU 加速(需要stt
)metal
: 启用 Metal GPU 加速(需要stt
)
系统要求
- Rust: 1.70 或更高版本
- FFmpeg: 用于音频处理
- macOS:
brew install ffmpeg
- Ubuntu:
sudo apt-get install ffmpeg
- Windows: 使用 vcpkg 安装
- macOS:
- Whisper 模型: 需要下载 Whisper 模型文件(.bin 格式)
错误处理
该库使用统一的错误处理机制,所有函数都返回 Result<T, Error>
类型,
其中 Error
是一个枚举类型,包含了所有可能的错误情况。
性能考虑
- 首次加载模型时会有一定的延迟
- 建议在长期运行的应用中复用模型实例
- 使用 GPU 加速可以显著提高处理速度
- 对于实时应用,建议使用流式处理功能
许可证
本项目采用 MIT 或 Apache 2.0 许可证。详情请参阅 LICENSE 文件。
贡献
欢迎提交 Issue 和 Pull Request!请参阅 CONTRIBUTING.md 了解详情。
更新日志
请参阅 CHANGELOG.md 了解版本更新详情。