让你的 AIPC “能听会说”: Fun-ASRNano × Fun-CosyVoice 3.0 全链路加速实战

openlab_96bf3613 更新于 1天前

作者:杨亦诚,纪书杰,周涛,任而今

引言

如果你希望让自己的 AIPC 能像真人一样又能听、又能说,那么 Fun-ASR-Nano 和 FunCosyVoice 3.0 是非常值得关注的两款模型,轻量化的设计,使他们能同时兼顾性能和效果,并可根据用户习惯持续Finetune优化,非常适合在端侧设备进行部署。

  • Fun-ASR-Nano 是通义实验室打造的端到端语音识别模型,训练数据量级达到数千万小时,能理解上下文、能适应行业术语、还能实时低延迟转写,支持 31 种语言,教育、金融等场景也都能精准识别,不易乱码也不容易“幻觉”。

  • Fun-CosyVoice 3.0 是基于 LLM 的高级 TTS 模型,相比 2.0 在语音自然度、音色相似度和韵律表现上都有明显提升。它主打“零样本、多语种、野外语音合成”,意思就是:给它一段参考声音,它几乎马上能模仿出来。

本文会通过实时语音翻译示例,带你一步步了解如何通过 Intel® OpenVINO™ 工具,把这两个模型优化成更轻量、推理更快、部署更灵活的版本,从而在 AIPC 上获得理想的性能。

内容列表

1. 实时语音翻译Demo

2. Fun-ASR-Nano模型部署

3. Fun-CosyVoice 3.0模型部署

4. 总结

实时语音翻译Demo

利用 OpenVINO™ 工具套件,我们将经过深度性能优化的 Fun-CosyVoice 3.0与 FunASRNano 模型进行整合,在 Intel AIPC 上构建出一个高效实时的“语音 → 翻译 → 语音”全流程系统。此外得益于 Intel 平台充足的算力资源,我们针对 Fun-CosyVoice 3.0模型在AIPC本地进行了进一步的on-device finetune, 提升特定音色的生成效果。

在这个系统中,FunASRNano 负责对输入语音进行快速而精准的识别,将用户的语音内容实时转写成文本;随后,文本会被送入 Qwen3 语言模型执行语义理解与跨语言翻译;最后,经过我们Finetune过的CosyVoice3 会基于输入的文本内容与参考音色,合成出高保真、自然流畅的目标语言语音。

整个流程不仅实现了实时双向语音交互,还支持声音克隆能力:系统能够提取用户的声纹特征,并在翻译后的语音输出中保持原有的音色与说话风格,使转换后的语音更加自然可信。凭借 OpenVINO™ 的加速与模型轻量化能力,该方案可在 AIPC 上以极低延迟、较低能耗的方式稳定运行。

以下的视频展示了该 Demo 的实际运行效果,呈现了从语音输入到翻译输出的完整实时交互过程。

运行效果视频

Fun-ASR-Nano模型部署

1. 环境准备

首先,在 Python 环境中执行以下指令即可准备好运行所需依赖:


python -m venv py_venv ./py_venv/Scripts/activate.bat  pip install torch==2.7.1 torchvision==0.22.1 nncf openvino>=2025.4  optimum-intel==1.26.1 modelscopegit clone https://github.com/FunAudioLLM/Fun-ASR.git@efe63c122929bcca095fedc537c3081c5c4ee062cd Fun-ASRpip install -r requirementpython -m venv py_venv ./py_venv/Scripts/activate.bat  pip install torch==2.7.1 torchvision==0.22.1 nncf openvino>=2025.4  optimum-intel==1.26.1 modelscopegit clone https://github.com/FunAudioLLM/Fun-ASR.git@efe63c122929bcca095fedc537c3081c5c4ee062cd Fun-ASRpip install -r requirement

2. 模型下载和转换

在部署模型之前,我们首先需要将原始的PyTorch模型转换为OpenVINOTM的IR静态图格式,以实现更轻量化的部署和最佳的性能表现。为此我们封装一个专门针对Fun-ASR-Nano的ov_funasr_helper.py脚本,用于模型的转换与pipeline重构,模型转换方法如下:

  • 使用命令行终端,将原始模型下载到本地:


modelscope download --model FunAudioLLM/Fun-ASR-Nano-2512 --local_dir ./ Fun-ASR-Nano-2512modelscope download --model FunAudioLLM/Fun-ASR-Nano-2512 --local_dir ./ Fun-ASR-Nano-2512


  • 运行python转换脚本:


from ov_funasr_helper import convert_funasr convert_funasr(    model_id="Fun-ASR-Nano-2512",    model_path="Fun-ASR-Nano-ov",)from ov_funasr_helper import convert_funasr
convert_funasr(    model_id="Fun-ASR-Nano-2512",    model_path="Fun-ASR-Nano-ov",)


该转换脚本会将整个模型拆分成Text Embedding, Audio Encoder和LLM三个子模型,他们分别的功能是:

  • Audio Encoder: 处理提取的音频特征,并将其转换为语言模型可以理解的音频嵌入向量。 

  • Text Embedding: 将文本标记转换为语言模型的嵌入向量。 

  • 语言模型 (LLM): 基于 Qwen3 的大型语言模型,接收合并后的音频和文本嵌入作为输入,并生成转录输出。

下一步,我们会利用这些模型替换原始模型中相对应的PyTorch模块,以重构Pipeline。

3. 模型部署

同样ov_funasr_helper.py脚本也可以被用来进行模型部署任务,在ov_funasr_helper.py中我们封装了和原始模型pipeline使用方法相近的OVFunASRNano对象,使用示例如下:


from ov_funasr_helper import OVFunASRNano model_dir = "Fun-ASR/Fun-ASR-Nano-ov"m = OVFunASRNano(model_dir, device="GPU")wav_path = "Fun-ASR-Nano-2512/example/zh.mp3"re*****.inference(data_in=[wav_path])text = res[0][0]["text"]print(text)from ov_funasr_helper import OVFunASRNano
model_dir = "Fun-ASR/Fun-ASR-Nano-ov"m = OVFunASRNano(model_dir, device="GPU")wav_path = "Fun-ASR-Nano-2512/example/zh.mp3"re*****.inference(data_in=[wav_path])text = res[0][0]["text"]print(text)


通过修改device为“NPU”,你也可以将Pipeline中的LLM部分部署到NPU上,以更好地平衡性能和能耗。运行结果如下:

  • 输入音频

https://download.csdn.net/download/gc5r8w07u/92593707

  • 输出文本

“开放时间早上九点至下午五点。”

CosyVoice 3.0模型部署

1. 环境准备


python -m venv py_venv ./py_venv/Scripts/activate.bat  pip install nncf openvino>=2025.4  modelscopegit clone https://github.com/FunAudioLLM/CosyVoice.git@8b54619760fcb78abf5e4637a88e19c1b9ab53c9cd CosyVoicepip install -r requirementpython -m venv py_venv ./py_venv/Scripts/activate.bat  pip install nncf openvino>=2025.4  modelscopegit clone https://github.com/FunAudioLLM/CosyVoice.git@8b54619760fcb78abf5e4637a88e19c1b9ab53c9cd CosyVoicepip install -r requirement


2. 模型下载和转换

类似Fun-ASR-Nano的方案,我们也提供了ov_cosyvoice_helper.py脚本,进行模型格式转换和推理任务的封装,模型转换方法如下:

  • 使用命令行终端,将原始模型下载到本地:


modelscope download --model FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local_dir ./ Fun-CosyVoice3-0.5B-2512 modelscope download --model FunAudioLLM/Fun-CosyVoice3-0.5B-2512 --local_dir ./ Fun-CosyVoice3-0.5B-2512


  • 运行python转换脚本:


from ov_cosyvoice_helper import convert_cosyvoice convert_cosyvoice(    model_id="Fun-CosyVoice3-0.5B-2512",    model_path="Fun-CosyVoice3-0.5B-2512-ov",)from ov_cosyvoice_helper import convert_cosyvoice
convert_cosyvoice(    model_id="Fun-CosyVoice3-0.5B-2512",    model_path="Fun-CosyVoice3-0.5B-2512-ov",)


该转换脚本会将整个模型拆分成Flow Embedding, Flow Estimator, Text Embedding, Speech Embedding, Hift和LLM 6个子模型。他们的作用分别为:

  • Text Embedding: 将文本标记转换为语言模型的嵌入向量。 

  • Speech Embedding: 从参考音频中提取说话人嵌入向量,用于语音克隆。 

  • 语言模型 (LLM): 基于 Qwen2 的大型语言模型,根据文本和说话人条件生成语音标记。 

  • Flow Embedding: 将语音标记嵌入到流匹配模型中。 

  • Flow Estimator: 一个条件流匹配 (CFM) 模型,从语音标记嵌入生成梅尔频谱图。 

  • HiFT (基于 HiFi-GAN 的声码器): 将梅尔频谱图转换为高保真音频波形。

3. 模型部署

通过OVCosyVoice3类,我们可以初始化以上这些模型对象,并将他们加载到不同的硬件单元。使用示例如下:


    cosyvoice = OVCosyVoice3(        model_dir='Fun-CosyVoice3-0.5B-2512-ov',        device='CPU',  # Default device for all models        llm_device='GPU',      # LLM model device (defaults to device)        flow_device='GPU',     # Flow model device (defaults to device)        hift_device='CPU',     # HiFT model device (defaults to device)        frontend_device='CPU', # Frontend model device (defaults to device)    )    cosyvoice = OVCosyVoice3(        model_dir='Fun-CosyVoice3-0.5B-2512-ov',        device='CPU',  # Default device for all models        llm_device='GPU',      # LLM model device (defaults to device)        flow_device='GPU',     # Flow model device (defaults to device)        hift_device='CPU',     # HiFT model device (defaults to device)        frontend_device='CPU', # Frontend model device (defaults to device)    )


接下来我们可以利用初始化后的cosyvoice对象部署模型任务,由于OpenVINOTM对象的封装函数接口基本和原模型是一致,因此可以直接兼容原始模型示例,例如zero shot模式:


    print("Running zero_shot inference...")    for i, j in enumerate(cosyvoice.inference_zero_shot(        '八百标兵奔北坡,北坡炮兵并排跑,炮兵怕把标兵碰,标兵怕碰炮兵炮。',        'You are a helpful assistant.<|endofprompt|>希望你以后能够做的比我还好呦。',        './asset/zero_shot_prompt.wav',        stream=False    )):        torchaudio.save('ov_zero_shot_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)        print(f"Saved ov_zero_shot_{i}.wav")    print("Running zero_shot inference...")    for i, j in enumerate(cosyvoice.inference_zero_shot(        '八百标兵奔北坡,北坡炮兵并排跑,炮兵怕把标兵碰,标兵怕碰炮兵炮。',        'You are a helpful assistant.<|endofprompt|>希望你以后能够做的比我还好呦。',        './asset/zero_shot_prompt.wav',        stream=False    )):        torchaudio.save('ov_zero_shot_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)        print(f"Saved ov_zero_shot_{i}.wav")


或是指令控制模式:


   print("Running instruct2 inference (Cantonese)...")    for i, j in enumerate(cosyvoice.inference_instruct2(        '好少咯,一般系放嗰啲国庆啊,中秋嗰啲可能会咯。',        'You are a helpful assistant. 请用广东话表达。<|endofprompt|>',        './asset/zero_shot_prompt.wav',        stream=False    )):        torchaudio.save('ov_instruct_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)        print(f"Saved ov_instruct_{i}.wav")   print("Running instruct2 inference (Cantonese)...")    for i, j in enumerate(cosyvoice.inference_instruct2(        '好少咯,一般系放嗰啲国庆啊,中秋嗰啲可能会咯。',        'You are a helpful assistant. 请用广东话表达。<|endofprompt|>',        './asset/zero_shot_prompt.wav',        stream=False    )):        torchaudio.save('ov_instruct_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)        print(f"Saved ov_instruct_{i}.wav")

同时该模型还支持声音克隆,以下为声音克隆功能的效果展示:

· 克隆原音

https://download.csdn.net/download/gc5r8w07u/92593704

· 克隆后的音频输出

https://download.csdn.net/download/gc5r8w07u/92593706

总结

本文系统展示了如何利用 OpenVINO™ 在 Intel AIPC 上高效部署 Fun-ASR-Nano 与 Fun-CosyVoice 3.0 两大端侧语音模型。借助配套的辅助脚本,我们不仅能够将原始模型便捷地转换为更轻量、更适合端侧推理的 IR(Intermediate Representation)格式,还可以灵活地将模型调度到不同的硬件单元(CPU / GPU / NPU),从而在性能、延迟与能耗之间实现最优平衡。

通过这样的全链路优化方案,AIPC 不仅能够以极低延迟完成语音识别、语义理解与语音生成的完整流程,还大幅降低了部署复杂度,使实时语音交互、跨语言翻译以及声音克隆等高阶能力在端侧设备上成为可能。这为未来更智能、更自然的人机交互体验奠定了坚实基础,也展示了 OpenVINO™ 在端侧 AI 加速领域的核心价值。

 OpenVINO 小助手微信: OpenVINO-China

如需咨询或交流相关信息,欢迎添加OpenVINO小助手微信,加入专属社群,与技术专家实时沟通互动。

0个评论