当前位置:首页 > 技术分析 > 正文内容

7K Star 开箱即用!阿里多语言语音生成模型2.0上线还支持了方言。

ruisui883个月前 (02-16)技术分析18

近年来,人工智能技术在各个领域都取得了令人瞩目的成果,其中,AI语音合成技术更是备受关注。

生活中也处处得见,像配音、解说、音乐等领域都有它的身影。

阿里早在7月就开源过一个语音大模型项目:FunAudioLLM,而它一次性包含了两个模型:SenseVoice(语音识别)CosyVoice(语音生成)

而今天我想要介绍的是专注于语音生成的 CosyVoice

因为它刚刚升级到了2.0版本,较1.0版本效果显著。

在介绍2.0版本亮点之前,我们先来看看 CosyVoice 的基本特性。

项目简介

CosyVoice 是阿里开源的一款创新的多语言、情感丰富的语音生成大模型,旨在通过先进的 AI 技术生成自然且富有情感的语音。

无论是在语音生成的质量,还是在细节控制的精准度上,CosyVoice 都表现卓越,能够应对零样本语音生成、跨语言声音合成以及指令执行等多种任务。

仅需要3~10s的原始音频,CosyVoice即可生成模拟音色,甚至包括韵律、情感等细节,包括跨语种语音生成。

可以生成与特定特征匹配的语音,比如性别、年龄和个性等。还可以模仿非常自然的人类语音,包括笑声、咳嗽和呼吸。

核心特点

  • 多语言支持:支持包括 中文、英文、日语、粤语和韩语 在内的 5种主要语言。
  • 零样本语音克隆:只需 3~10秒的音频样本,即可准确模拟目标声音。
  • 精细化情感和风格控制:允许用户通过 文本指令 来精确控制生成语音的情感、语速、音高、音色等多维度的特征。
  • 跨语种语音生成:支持 跨语种语音生成,能够从一种语言的音频样本生成另一种语言的语音。
  • 语音生成与指令执行集成:CosyVoice 可以与开源大模型结合,支持 实时语音交互 和 语音翻译。

CosyVoice V2.0升级亮点

2.0 版本,带来了更加精准、自然且富有情感的语音生成体验!

  • 发音准确度大幅提升:发音错误减少 30%-50%,让语音生成更加清晰、准确。
  • 音质提升:音质 MOS(Mean Opinion Score)评分从 5.4 提升至 5.53。
  • 超低延迟:150ms 超低首包延迟,确保语音生成过程更加流畅,适合实时语音交互和在线语音翻译。
  • 方言和口音调整:支持更细致的方言和口音调整,使生成的语音更加贴合目标地区的发音习惯。
  • 更细粒度的情感控制:如愉悦、悲伤、激动等,可生成更具表现力的语音。

快速使用

CosyVoice的安装和使用同大多数开源项目无差。

最简单的当然是官方Demo直接用了

其次是用户根据官方文档进行操作,在本地或服务器上部署项目,下载模型。

具体步骤如下:

①克隆项目

git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
# If you failed to clone submodule due to network failures, please run following command until success
cd CosyVoice
git submodule update --init --recursive

②创建虚拟环境,安装依赖

conda create -n cosyvoice python=3.10
conda activate cosyvoice
# pynini is required by WeTextProcessing, use conda to install it as it can be executed on all platform.
conda install -y -c conda-forge pynini==2.1.5
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

# If you encounter sox compatibility issues
# ubuntu
sudo apt-get install sox libsox-dev
# centos
sudo yum install sox sox-devel

③模型下载

# SDK模型下载
from modelscope import snapshot_download
snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
snapshot_download('iic/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
snapshot_download('iic/CosyVoice-300M-25Hz', local_dir='pretrained_models/CosyVoice-300M-25Hz')
snapshot_download('iic/CosyVoice-300M-SFT', local_dir='pretrained_models/CosyVoice-300M-SFT')
snapshot_download('iic/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')
snapshot_download('iic/CosyVoice-ttsfrd', local_dir='pretrained_models/CosyVoice-ttsfrd')

④配置环境变量

export PYTHONPATH=third_party/Matcha-TTS

⑤调用示例

from cosyvoice.cli.cosyvoice import CosyVoice, CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio

cosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B', load_jit=True, load_onnx=False, load_trt=False)

# NOTE if you want to reproduce the results on https://funaudiollm.github.io/cosyvoice2, please add text_frontend=False during inference
# zero_shot usage
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)
for i, j in enumerate(cosyvoice.inference_zero_shot('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '希望你以后能够做的比我还好呦。', prompt_speech_16k, stream=False)):
    torchaudio.save('zero_shot_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)

# fine grained control, for supported control, check cosyvoice/tokenizer/tokenizer.py#L248
for i, j in enumerate(cosyvoice.inference_cross_lingual('在他讲述那个荒诞故事的过程中,他突然[laughter]停下来,因为他自己也被逗笑了[laughter]。', prompt_speech_16k, stream=False)):
    torchaudio.save('fine_grained_control_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)

# instruct usage
for i, j in enumerate(cosyvoice.inference_instruct2('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '用四川话说这句话', prompt_speech_16k, stream=False)):
    torchaudio.save('instruct_{}.wav'.format(i), j['tts_speech'], cosyvoice.sample_rate)

写在最后

CosyVoice 是一款领先的多语言、情感控制的语音生成大模型,它不仅能在多种语言和情感下生成自然的语音,还能通过简单的音频样本进行说话人声音克隆,提供精准的音色和情感调控。

随着 AI 语音生成技术的进步,CosyVoice 不仅为开发者提供了一个强大的工具,也为语音交互和多语言应用打开了新的可能性。

模型:
https://www.modelscope.cn/models/iic/CosyVoice2-0.5B

DEMO:https://www.modelscope.cn/studios/iic/CosyVoice2-0.5B

GitHub:https://github.com/FunAudioLLM/

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2000.html

标签: gitsubmodule
分享给朋友:

“7K Star 开箱即用!阿里多语言语音生成模型2.0上线还支持了方言。” 的相关文章

财务未来:数字化全流程自动化报销,让预算管理更轻松

财务管理是企业经营的重中之重,费控管理则是财务管理的核心之一。上至管理层下至普通员工,面对繁琐的费控管理却是“家家有本难念的经”。举个常见的例子:在传统企业的费用管理模式下,员工在进行商务活动时,通常需要自行垫资,之后再经过一系列繁杂的报销审批流程,才能最终实现打款。对于普通员工来说,申报流程繁琐,...

Vue3 如何实现父子组件传值?

在Vue 3中,要实现父子组件传值效果主要通过props和emit两种机制来实现,下面我们就来详细介绍一下这两种机制。父组件向子组件传值propsprops是Vue组件的一种机制,主要的作用就是实现从父组件向子组件传递数据值,在父组件上通过在子组件标签上定义属性来实现数据属性值的传递,在子组件中通过...

vue:组件中之间的传值

一、父子组件之间的传值----props/$emit1、父组件向子组件传值--props2.子组件想父组件传值-this.$emit('select',item)二、父组件向下(深层)子组件传值----provide/injectprovide:Object | () => O...

vue组件间的九种通信方式

前言Vue组件实例间的作用域是相互独立的,而通常一个页面是由很多个组件构成,这些组件可能又嵌套了组件,形成了一个关系网图,它们的关系可能是像下图中一样,大致分为两种使用场景,父子组件间通信和非父子组件间通信,父子组件间通信又分为直接父子关系和间接父子关系。vue提供了多种通信方法,针对不同的通信需求...

基于gitlab的PR操作教程

基于gitlab的PR操作教程注:该教程主要基于git命令行操作,其他图形化工具也可完成以下所有操作步骤,顺手即可。推荐工具:Source Tree ,TortoiseGit参考:gitflow一 . 基于分支的PR操作1. 本地切换到master分支1. 拉取最新代码2. 基于master创建ho...

程序员开发必会之git常用命令,git配置、拉取、提交、分支管理

整理日常开发过程中经常使用的git命令![送心]git配置SSH刚进入项目开发中,我们首先需要配置git的config、配置SSH方式拉取代码,以后就免输入账号密码了!# 按顺序执行 git config --global user.name "自己的账号" git config -...