当前位置: 首页 > news >正文

【语音合成】中文-多情感领域-16k-多发音人

模型介绍

  • 语音合成-中文-多情感领域-16k-多发音人

框架描述

拼接法和参数法是两种Text-To-Speech(TTS)技术路线。近年来参数TTS系统获得了广泛的应用,故此处仅涉及参数法。

参数TTS系统可分为两大模块:前端和后端。 前端包含文本正则、分词、多音字预测、文本转音素和韵律预测等模块,它的功能是把输入文本进行解析,获得音素、音调、停顿和位置等语言学特征。 后端包含时长模型、声学模型和声码器,它的功能是将语言学特征转换为语音。其中,时长模型的功能是给定语言学特征,获得每一个建模单元(例如:音素)的时长信息;声学模型则基于语言学特征和时长信息预测声学特征;声码器则将声学特征转换为对应的语音波形。
在这里插入图片描述

前端模块我们采用模型结合规则的方式灵活处理各种场景下的文本,后端模块则采用SAM-BERT + HIFIGAN提供高表现力的流式合成效果。

声学模型SAM-BERT

后端模块中声学模型采用自研的SAM-BERT,将时长模型和声学模型联合进行建模。

  • Backbone采用Self-Attention-Mechanism(SAM),提升模型建模能力。
  • Encoder部分采用BERT进行初始化,引入更多文本信息,提升合成韵律。
  • Variance Adaptor对音素级别的韵律(基频、能量、时长)轮廓进行粗粒度的预测,再通过decoder进行帧级别细粒度的建模;并在时长预测时考虑到其与基频、能量的关联信息,结合自回归结构,进一步提升韵律自然度.
  • Decoder部分采用PNCA AR-Decoder[@li2020robutrans],自然支持流式合成。
    在这里插入图片描述

声码器模型

后端模块中声码器采用HIFI-GAN, 基于GAN的方式利用判别器(Discriminator)来指导声码器(即生成器Generator)的训练,相较于经典的自回归式逐样本点CE训练, 训练方式更加自然,在生成效率和效果上具有明显的优势。
在这里插入图片描述

在HIFI-GAN开源工作[1]的基础上,我们针对16k, 48k采样率下的模型结构进行了调优设计,并提供了基于因果卷积的低时延流式生成和chunk流式生成机制,可与声学模型配合支持CPU、GPU等硬件条件下的实时流式合成。

部署

  • 下载模型: git lfs clone https://www.modelscope.cn/iic/speech_sambert-hifigan_tts_zh-cn_16k.git
  • modelscope库安装:
    • 安装modelscope基础功能: pip install modelscope -i https://mirrors.cloud.aliyuncs.com/pypi/simple
    • 安装modelscope cv功能: pip install "modelscope[cv]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html
    • 安装modelscope audio功能: pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

使用方式和范围

  • 使用方式: 直接输入文本进行推理
  • 使用范围: 适用于中文或中英文混合的语音合成场景,输入文本使用utf-8编码,整体长度建议不超过30
  • 目标场景: 各种语音合成任务,比如配音,虚拟主播,数字人等

代码范例

from modelscope.outputs import OutputKeys
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasksdef text_to_speech(text, speech_file_path, voice_type):model_id = 'damo/speech_sambert-hifigan_tts_zh-cn_16k'sambert_hifigan_tts = pipeline(task=Tasks.text_to_speech, model=model_id)output = sambert_hifigan_tts(input=text, voice=voice_type)wav = output[OutputKeys.OUTPUT_WAV]with open(speech_file_path, 'wb') as f:f.write(wav)if __name__ == "__main__":text_to_speech('待合成文本', 'output.wav', 'zhitian_emo')
http://www.lryc.cn/news/295482.html

相关文章:

  • 07-使用Package、Crates、Modules管理项目
  • spring.jpa.hibernate 配置和源码解析
  • 2019年江苏省职教高考计算机技能考试——一道程序改错题的分析
  • 邦芒支招:职场白领必备的10条护身符
  • python实现飞书群机器人消息通知(消息卡片)
  • 网站服务器中毒或是被入侵该怎么办?
  • Skywalking 学习之ByteBuddy 方法执行时间监控
  • idea vim配置
  • kafka排除zookeeper使用kraft的最新部署方案
  • SQL Server数据库日志查看若已满需要清理的三种解决方案
  • 人工智能 | 深度学习的进展
  • 玩转Java8新特性
  • EasyRecovery2024永久免费版电脑数据恢复软件下载
  • QQ音乐新版客户端的音乐无法解密?来看看解决方法!音乐解锁工具Web+批处理版本合集,附常见问题及解决方法!
  • 2023年12月CCF-GESP编程能力等级认证C++编程一级真题解析
  • 如何决定K8S Pod的剔除优先级
  • 【JavaScript】数据类型
  • JAVA:单例模式提高性能和安全性的优化技巧
  • 如何在 Ubuntu 上安装 ONLYOFFICE 文档 8.0
  • 什么是大模型
  • C#在既有数组中插入另一个数组:Array.Copy方法 vs 自定义插入方法
  • 上位机图像处理和嵌入式模块部署(linux开发板的选择)
  • 2024情人节送女朋友什么礼物?精准送礼看这个就对啦!男生必看!
  • 查询每张表占用磁盘空间大小(达梦数据库)
  • Vue3——创建一个应用
  • 深度学习系列56:使用whisper进行语音转文字
  • 【Web - 框架 - Vue】随笔 - 通过`CDN`的方式使用`VUE 2.0`和`Element UI`
  • 设计模式(行为型模式)备忘录模式
  • opencv案例实战:条码区域分割
  • 《MySQL》超详细笔记