Kyutai Labs的delayed-streams-modeling
项目是一个开源的语音与文本转换框架,核心基于延迟流建模(DSM)技术。它支持实时语音转文本(STT)和文本转语音(TTS)功能,适用于构建高效的语音交互应用。项目提供PyTorch、Rust和MLX等多种实现方式,满足研究、开发和生产环境的需求。模型支持英语和法语,延迟低至0.5秒,适合实时对话、语音助手和翻译场景。项目代码托管在GitHub,文档清晰,易于上手。
功能列表
- 实时语音转文本(STT):支持英语和法语,延迟低至0.5秒,带语义语音活动检测(VAD)。
- 实时文本转语音(TTS):生成自然语音,延迟约220毫秒,支持长文本生成。
- 语音克隆:仅需10秒音频即可克隆语音(功能未完全开源)。
- 多语言支持:提供英语和法语模型,部分支持其他语言的实验性功能。
- 高效批处理:Rust服务器支持高并发,L40S GPU上可处理64个实时音频流。
- 跨平台部署:支持PyTorch(研究)、Rust(生产)、MLX(苹果设备)。
- 时间戳输出:STT模型返回单词级时间戳,便于字幕生成或交互控制。
使用帮助
安装流程
delayed-streams-modeling
项目支持多种部署方式,具体取决于使用场景。以下是详细的安装和使用指南:
1. PyTorch(研究和实验)
适合研究人员和开发者在本地测试模型。
- 环境准备:
- 确保安装Python 3.8+和PyTorch(建议使用GPU版本)。
- 克隆仓库:
git clone https://github.com/kyutai-labs/delayed-streams-modeling.git cd delayed-streams-modeling
- 安装依赖:
pip install -r requirements.txt
- 运行STT模型:
- 下载预训练模型,如
kyutai/stt-1b-en_fr
(Hugging Face仓库)。 - 运行推理示例:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-2.6b-en-mlx audio/sample.wav --temp 0
- 结果将输出转录文本和时间戳。
- 下载预训练模型,如
- 运行TTS模型:
- 使用类似命令调用TTS模型,输入文本文件生成音频。
2. Rust(生产环境)
适合高并发生产环境,性能优越。
- 环境准备:
- 安装Rust(通过
rustup
)。 - 克隆
moshi
仓库:git clone https://github.com/kyutai-labs/moshi.git cd moshi
- 安装
moshi-server
:cargo install moshi-server
- 安装Rust(通过
- 配置服务器:
- 编辑配置文件(位于
moshi/config
),设置批处理大小(L40S GPU建议64)。 - 启动服务器:
cargo run --release -- --config config.toml
- 服务器通过WebSocket提供流式访问,支持多用户并发。
- 编辑配置文件(位于
- 使用方法:
- 通过WebSocket客户端发送音频流,接收转录文本或生成语音。
3. MLX(苹果设备)
适合在iPhone或Mac上运行,优化硬件加速。
- 环境准备:
- 安装MLX框架(苹果官方机器学习框架)。
- 克隆仓库并安装
moshi-mlx
:pip install moshi-mlx
- 运行推理:
- 麦克风实时转录:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-1b-en_fr-mlx --mic
- 文件转录:
python -m moshi_mlx.run_inference --hf-repo kyutai/stt-2.6b-en-mlx audio/sample.mp3 --temp 0
- 1B模型在iPhone 16 Pro上运行流畅。
- 麦克风实时转录:
功能操作流程
实时语音转文本(STT)
- 输入音频:支持麦克风实时输入或上传音频文件(如WAV、MP3)。
- 模型选择:
kyutai/stt-1b-en_fr
:适合英语和法语,低延迟(0.5秒),带语义VAD。kyutai/stt-2.6b-en
:英语专用,2.5秒延迟,精度更高。
- 语义VAD:自动检测用户是否结束说话,动态调整暂停时间,避免误判。
- 输出结果:返回转录文本和单词级时间戳,可用于字Subtitle生成或交互控制。
- 优化延迟:使用“flush trick”技术,检测到语音结束时加速处理,延迟从500毫秒降至125毫秒。
实时文本转语音(TTS)
- 输入文本:支持逐句输入或流式输入,适合实时对话。
- 生成音频:模型在220毫秒内生成自然语音,支持长文本(超30秒)。
- 语音克隆:输入10秒参考音频,生成相似语音(需额外配置,未完全开源)。
- 输出格式:生成WAV格式音频,可直接播放或保存。
生产环境部署
- Rust服务器:支持高并发,H100 GPU可处理400个实时音频流。
- 批处理优化:通过DSM架构,无需额外代码即可高效批处理。
- WebSocket接口:客户端通过WebSocket发送音频或文本,服务器实时返回结果。
注意事项
- 模型选择:根据硬件和需求选择适合的模型(1B参数适合轻量设备,2.6B参数适合高精度场景)。
- 网络要求:生产环境需要稳定网络以支持WebSocket流式传输。
- 文档参考:详细配置和API文档见GitHub仓库
README.md
。
应用场景
- 语音助手开发
- 场景描述:开发者使用STT和TTS模型构建智能语音助手,支持实时对话。语义VAD确保准确检测用户意图,适合客服机器人或智能家居设备。
- 实时字幕生成
- 场景描述:STT模型为视频会议或直播生成实时字幕,单词级时间戳便于精确对齐,适用于教育、会议和媒体行业。
- 语音翻译
- 场景描述:结合Hibiki模型,实现实时语音翻译,适合跨语言会议或旅游场景,支持流式输出翻译结果。
- 移动设备语音交互
- 场景描述:MLX实现让iPhone用户通过语音操作应用,如语音笔记或实时转录,适合移动办公和个人助理。
QA
- 如何选择适合的模型实现?
- PyTorch适合研究和测试,Rust适合生产环境的高并发,MLX适合苹果设备。参考硬件和场景选择。
- 语音克隆功能是否完全开源?
- 目前语音克隆功能未完全开源,需额外配置,官方建议参考Hugging Face文档。
- 如何优化服务器性能?
- 调整Rust服务器配置文件中的批处理大小(如64),确保GPU内存充足。H100 GPU可支持更高并发。
- 支持哪些语言?
- 主要支持英语和法语,实验性支持其他语言,需参考官方文档测试。
- 延迟流建模(DSM)有什么优势?
- DSM通过时间对齐的音频和文本流降低延迟,支持高效批处理,优于传统模型如Whisper。