综合介绍
Kimi-Audio 是由 Moonshot AI 开发的一款开源音频基础模型,专注于音频理解、生成和对话。它支持多种音频处理任务,例如语音识别、音频问答和语音情感识别。模型经过超过 1300 万小时的音频数据预训练,结合创新的混合架构,在多个音频基准测试中表现优异。Kimi-Audio 提供模型权重、推理代码和评估工具包,方便开发者在研究和应用中集成。它适合需要高效音频处理和对话能力的场景,文档清晰,支持 Docker 部署,社区活跃,持续更新。
功能列表
- 语音识别(ASR):将音频转为文本,支持多语言语音转写。
- 音频问答(AQA):根据音频内容回答用户提问,理解音频上下文。
- 音频字幕(AAC):为音频生成精准的字幕或描述。
- 语音情感识别(SER):分析音频中的情感状态,如高兴或悲伤。
- 声音事件/场景分类(SEC/ASC):识别音频中的特定事件或场景,如汽车声或室内环境。
- 文本转语音(TTS):将文本转化为自然语音,支持多种音色。
- 语音转换(VC):改变语音的音色或风格,生成个性化音频。
- 端到端语音对话:支持连续的语音交互,模拟自然对话。
- 流式音频生成:通过分块流式解码器,实现低延迟音频生成。
- 评估工具包:提供标准化的评估工具,方便比较不同模型性能。
使用帮助
安装流程
Kimi-Audio 的部署推荐使用 Docker,确保环境一致性和安装简便。以下是详细的安装步骤:
- 克隆仓库
在终端运行以下命令,获取 Kimi-Audio 的代码和子模块:git clone https://github.com/MoonshotAI/Kimi-Audio.git cd Kimi-Audio git submodule update --init --recursive
- 安装依赖
安装 Python 依赖,推荐使用 Python 3.10 环境:pip install -r requirements.txt
确保安装
torch
和soundfile
,支持 GPU 的用户需安装对应 CUDA 版本的 PyTorch。 - 构建 Docker 镜像
在 Kimi-Audio 目录下构建 Docker 镜像:docker build -t kimi-audio:v0.1 .
或者使用官方预构建镜像:
docker pull moonshotai/kimi-audio:v0.1
- 运行容器
启动 Docker 容器,并挂载本地工作目录:docker run -it -v $(pwd):/app kimi-audio:v0.1 bash
- 下载模型权重
Kimi-Audio 提供两个主要模型:Kimi-Audio-7B
(基础模型)和Kimi-Audio-7B-Instruct
(指令微调模型)。从 Hugging Face 下载:moonshotai/Kimi-Audio-7B-Instruct
:适合直接使用。moonshotai/Kimi-Audio-7B
:适合进一步微调。
使用 Hugging Face CLI 登录并下载:
huggingface-cli login
模型会自动下载到指定路径。
使用方法
Kimi-Audio 的核心功能通过 Python API 调用实现。以下是主要功能的详细操作流程:
1. 语音识别(ASR)
将音频文件转为文本。示例代码:
import soundfile as sf
from kimia_infer.api.kimia import KimiAudio
# 加载模型
model_path = "moonshotai/Kimi-Audio-7B-Instruct"
model = KimiAudio(model_path=model_path, load_detokenizer=True)
# 设置采样参数
sampling_params = {
"audio_temperature": 0.8,
"audio_top_k": 10,
"text_temperature": 0.0,
"text_top_k": 5,
"audio_repetition_penalty": 1.0,
"audio_repetition_window_size": 64,
"text_repetition_penalty": 1.0,
"text_repetition_window_size": 16,
}
# 准备输入
asr_audio_path = "asr_example.wav" # 确保文件存在
messages_asr = [
{"role": "user", "message_type": "text", "content": "请转录以下音频:"},
{"role": "user", "message_type": "audio", "content": asr_audio_path}
]
# 生成文本输出
_, text_output = model.generate(messages_asr, **sampling_params, output_type="text")
print("转录结果:", text_output)
操作步骤:
- 准备 WAV 格式的音频文件。
- 设置
messages_asr
指定任务为转录。 - 运行代码,获取文本输出。
2. 音频问答(AQA)
根据音频内容回答问题。示例:
qa_audio_path = "qa_example.wav"
messages_qa = [
{"role": "user", "message_type": "text", "content": "音频中说了什么?"},
{"role": "user", "message_type": "audio", "content": qa_audio_path}
]
_, text_output = model.generate(messages_qa, **sampling_params, output_type="text")
print("回答:", text_output)
操作步骤:
- 上传包含信息的音频文件。
- 在
messages_qa
中设置具体问题。 - 获取模型的文本回答。
3. 文本转语音(TTS)
将文本转化为语音输出。示例:
messages_tts = [
{"role": "user", "message_type": "text", "content": "请将以下文本转为语音:你好,欢迎使用 Kimi-Audio!"}
]
audio_output, _ = model.generate(messages_tts, **sampling_params, output_type="audio")
sf.write("output.wav", audio_output, samplerate=16000)
操作步骤:
- 输入需要转换的文本。
- 设置
output_type="audio"
获取音频数据。 - 使用
soundfile
保存为 WAV 文件。
4. 端到端语音对话
支持连续语音交互。示例:
messages_conversation = [
{"role": "user", "message_type": "audio", "content": "conversation_example.wav"},
{"role": "user", "message_type": "text", "content": "请回复一段语音,介绍你的功能。"}
]
audio_output, text_output = model.generate(messages_conversation, **sampling_params, output_type="both")
sf.write("response.wav", audio_output, samplerate=16000)
print("文本回复:", text_output)
操作步骤:
- 提供初始语音输入和文本指令。
- 设置
output_type="both"
获取语音和文本回复。 - 保存音频输出并查看文本。
5. 使用评估工具包
Kimi-Audio 提供 Kimi-Audio-Evalkit
用于模型性能评估。安装:
git clone https://github.com/MoonshotAI/Kimi-Audio-Evalkit.git
cd Kimi-Audio-Evalkit
pip install -r requirements.txt
运行评估:
bash run_audio.sh --model Kimi-Audio --dataset all
操作步骤:
- 下载数据集到指定目录。
- 配置
config.yaml
指定数据集路径。 - 运行脚本生成评估报告。
注意事项
- 确保音频文件格式为 WAV,采样率 16kHz。
- GPU 环境可加速推理,推荐使用 CUDA 12.4。
- 模型加载需要较大内存,建议至少 16GB 显存。
- 非 Docker 部署需手动安装系统依赖,参考 GitHub 文档。
应用场景
- 智能客服
Kimi-Audio 可用于构建语音交互的客服系统。它通过语音识别转录用户问题,结合音频问答提供解答,并生成自然语音回复。适合电商平台或技术支持场景,提升用户体验。 - 教育辅助
在语言学习中,Kimi-Audio 可转录学生发音,分析情感和语调,提供反馈。它还能将教学文本转为语音,生成听力材料,适合在线教育平台。 - 内容创作
视频制作者可使用 Kimi-Audio 生成字幕或配音。它能为视频自动生成精准字幕,或将脚本转为多种音色的语音,简化后期制作。 - 医疗记录
医生可通过语音输入病例,Kimi-Audio 转录为文本并分类情感,辅助诊断患者情绪状态。适用于医院信息系统。
QA
- Kimi-Audio 支持哪些语言?
Kimi-Audio 支持多语言语音识别和生成,尤其在英语和中文上表现优异。其他语言支持需参考官方文档。 - 如何优化推理速度?
使用 GPU 加速,安装flash-attn
库,设置torch_dtype=torch.bfloat16
。此外,调整audio_top_k
和text_top_k
参数可平衡速度和质量。 - 模型是否支持实时对话?
是的,Kimi-Audio 的流式解码器支持低延迟音频生成,适合实时语音交互。 - 如何添加自定义数据集进行评估?
在Kimi-Audio-Evalkit
中创建 JSONL 文件,包含index
、audio_path
和question
字段。修改config.yaml
指定数据集路径,运行评估脚本即可。