掘金 人工智能 04月28日 11:32
Kimi 7B 语音转文字
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何本地部署和使用Kimi-Audio-7B-Instruct语音模型进行推理。首先需要从ModelScope下载模型快照,然后克隆Kimi-Audio仓库,并更新子模块。安装依赖后,可以使用Python脚本进行初步推理,包括语音转文本(ASR)和语音对话两种模式。文章详细展示了如何定义采样参数、加载音频文件、生成文本和音频输出,并将生成的音频保存到本地。通过这些步骤,用户可以在本地环境中体验Kimi-Audio模型的强大功能。

📦模型准备:从ModelScope下载Kimi-Audio-7B-Instruct模型快照到本地,为后续推理做准备。

🛠️环境配置:克隆Kimi-Audio仓库,并使用`git submodule update --init --recursive`命令更新子模块,确保包含所有必要的依赖项。

🗣️语音转文本(ASR):加载音频文件,通过模型将语音转录为文本,展示了模型在语音识别方面的能力,例如将一段语音转录为“这并不是告别,这是一个篇章的结束,也是新篇章的开始。”

💬语音对话:通过输入音频,模型不仅生成文本回复,还生成对应的音频回复,展示了模型在语音交互方面的能力。生成的音频可以保存到本地。

⚙️采样参数调整:通过调整`audio_temperature`、`audio_top_k`等采样参数,可以控制生成音频和文本的多样性和质量。

1. 模型准备

from modelscope import snapshot_downloadmodel_dir = snapshot_download('moonshotai/Kimi-Audio-7B-Instruct',                              cache_dir="./models")

2. 安装和初步推理

clone仓库需要clone整个子模块

git clone https://github.com/MoonshotAI/Kimi-Audio.gitgit submodule update --init --recursive或者git clone --recursive https://github.com/MoonshotAI/Kimi-Audio.git

安装完依赖后使用python infer.py测试

import soundfile as sf# Assuming the KimiAudio class is available after installationfrom kimia_infer.api.kimia import KimiAudioimport torch # Ensure torch is imported if needed for device placementmodel_path = "/root/xx/models/moonshotai/Kimi-Audio-7B-Instruct" # IMPORTANT: Update this path if loading locallymodel = KimiAudio(model_path=model_path,                   load_detokenizer=True)model.to(device)print("load model from locally!")# --- 2. Define Sampling Parameters ---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,}# --- 3. Example 1: Audio-to-Text (ASR) ---# TODO: Provide actual example audio files or URLs accessible to users# E.g., download sample files first or use URLs# wget https://path/to/your/asr_example.wav -O asr_example.wav# wget https://path/to/your/qa_example.wav -O qa_example.wavasr_audio_path = "test_audios/asr_example.wav" # IMPORTANT: Make sure this file existsqa_audio_path = "test_audios/qa_example.wav" # IMPORTANT: Make sure this file existsmessages_asr = [    {"role": "user", "message_type": "text", "content": "Please transcribe the following audio:"},    {"role": "user", "message_type": "audio", "content": asr_audio_path}]# Generate only text output# Note: Ensure the model object and generate method accept device placement if needed_, text_output = model.generate(messages_asr, **sampling_params, output_type="text")print(">>> ASR Output Text: ", text_output)# Expected output: "这并不是告别,这是一个篇章的结束,也是新篇章的开始。" (Example)# --- 4. Example 2: Audio-to-Audio/Text Conversation ---messages_conversation = [    {"role": "user", "message_type": "audio", "content": qa_audio_path}]# Generate both audio and text outputwav_output, text_output = model.generate(messages_conversation, **sampling_params, output_type="both")# Save the generated audiooutput_audio_path = "output_audio.wav"# Ensure wav_output is on CPU and flattened before savingsf.write(output_audio_path, wav_output.detach().cpu().view(-1).numpy(), 24000) # Assuming 24kHz outputprint(f">>> Conversational Output Audio saved to: {output_audio_path}")print(">>> Conversational Output Text: ", text_output)# Expected output: "A." (Example)print("Kimi-Audio inference examples complete.")

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Kimi-Audio 语音模型 本地部署 语音转文本 语音对话
相关文章