综合介绍
Baichuan-Audio 是由百川智能(baichuan-inc)开发的一个开源项目,托管于 GitHub 上,专注于端到端的语音交互技术。该项目提供了一个完整的音频处理框架,能够将语音输入转化为离散音频标记,再通过大模型生成对应的文本和音频输出,实现高质量的实时对话功能。支持中英文双语,适用于需要语音理解和生成的场景,例如智能助手、语音聊天机器人等。此外,项目还开源了基础模型 Baichuan-Audio-Base 和评测基准 OpenAudio-Bench,为开发者提供强大的研究和开发支持。项目遵循 Apache 2.0 许可证,适合学术研究和特定条件下的商业应用。
功能列表
- 语音转音频标记:通过 Baichuan-Audio Tokenizer 将输入语音转化为离散音频标记,支持 12.5Hz 帧率设计,确保信息保留。
- 实时语音交互:结合 Audio LLM,支持中英文双语对话,可生成高质量语音和文本响应。
- 音频生成:利用流匹配解码器(Flow-matching Audio Decoder),从音频标记生成高保真 Mel 频谱图和波形。
- 模型开源:提供未经指令微调的基础模型 Baichuan-Audio-Base,开发者可根据需求进行定制化训练。
- 评测基准:包含 OpenAudio-Bench,提供 2701 个数据点的音频理解和生成能力评估工具。
- 多模态支持:支持文本和音频混合输入,实现模态间的无缝切换。
使用帮助
安装流程
要在本地使用 Baichuan-Audio,需要搭建开发环境并下载相关模型文件。以下是详细的安装步骤:
- 环境准备
- 确保系统安装了 Python 3.12 和 Conda。
- 创建并激活虚拟环境:
conda create -n baichuan_audio python=3.12 conda activate baichuan_audio
- 安装必要的依赖库:
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu124 pip install -r requirements.txt pip install accelerate flash_attn==2.6.3 speechbrain==1.0.0 deepspeed==0.14.4
- 安装系统工具:
apt install llvm ffmpeg
- 下载模型
- 从 GitHub 仓库(https://github.com/baichuan-inc/Baichuan-Audio)克隆代码:
git clone https://github.com/baichuan-inc/Baichuan-Audio.git cd Baichuan-Audio
- 修改
web_demo/constants.py
中的MODEL_PATH
,指向本地模型路径(需手动下载或通过 Hugging Face 获取模型权重,例如baichuan-inc/Baichuan-Audio
)。
- 从 GitHub 仓库(https://github.com/baichuan-inc/Baichuan-Audio)克隆代码:
- 运行 Demo
- 启动语音识别 Demo:
cd web_demo python base_asr_demo.py
- 启动语音合成 Demo:
python base_tts_demo.py
- 启动多轮对话 Demo:
python s2s_gradio_demo_cosy_multiturn.py
- 启动语音识别 Demo:
功能操作流程
1. 语音转音频标记(Baichuan-Audio Tokenizer)
- 功能说明:将输入的语音文件或实时麦克风输入转化为离散的音频标记,用于后续处理。
- 操作步骤:
- 准备音频文件(支持 WAV 格式)或连接麦克风设备。
- 在运行
base_asr_demo.py
后,界面会提示上传音频或开启麦克风。 - 系统自动调用 Whisper Large Encoder 提取特征,并通过 8 层 RVQ(残差矢量量化)生成音频标记。
- 输出结果可在控制台查看,格式为离散标记序列。
- 注意事项:确保音频清晰,背景噪音低,以提高识别准确率。
2. 实时语音交互(Audio LLM)
- 功能说明:支持用户通过语音或文字输入,与模型进行中英文双语实时对话。
- 操作步骤:
- 运行
s2s_gradio_demo_cosy_multiturn.py
,打开 Gradio 界面。 - 点击“录音”按钮,开始语音输入(例如:“请用中文告诉我今天的天气”)。
- 系统将语音转为标记,Audio LLM 生成文本和语音响应。
- 响应会同时以文字显示并通过扬声器播放。
- 运行
- 特色用法:
- 输入混合模态内容,例如先输入文字“Hi”,再用语音说“请继续用英语回答”。
- 系统通过特殊标记实现模态切换,保持对话连贯。
3. 音频生成(Flow-matching Audio Decoder)
- 功能说明:根据文本或音频输入,生成高质量的语音输出。
- 操作步骤:
- 运行
base_tts_demo.py
,进入文本到语音的界面。 - 在文本框输入内容(例如:“你好,今天是星期五”)。
- 点击“生成”按钮,系统将文本转为音频标记,再通过流匹配解码器生成 Mel 频谱图。
- 使用内置声码器将频谱图转为 WAV 文件,自动播放或下载。
- 运行
- 高级功能:支持调整语速和音调,具体参数可在代码中修改。
4. 使用评测基准(OpenAudio-Bench)
- 功能说明:评估模型的音频理解和生成能力。
- 操作步骤:
- 下载 OpenAudio-Bench 数据集(位于 GitHub 仓库)。
- 在本地运行评测脚本(需自行编写或参考仓库文档)。
- 输入测试音频或文本,获取模型在 5 个子评估集上的表现评分。
- 应用场景:开发者可用于对比不同模型的性能,优化训练策略。
注意事项
- 硬件要求:建议使用支持 CUDA 的 GPU(如 NVIDIA 显卡),CPU 运行可能较慢。
- 网络依赖:首次运行需联网下载模型权重,后续可离线使用。
- 商业使用:需遵守 Apache 2.0 协议,并确认日活跃用户(DAU)低于 100 万。