网易有道强力开源中英双语语音克隆

news/2024/7/10 22:12:45 标签: 开源, 人工智能, 音视频

项目地址(基于PromptTTS):

https://github.com/netease-youdao/EmotiVoice

图片

图片

EmotiVoice Docker镜像

尝试EmotiVoice最简单的方法是运行docker镜像。你需要一台带有NVidia GPU的机器。先按照Linux和Windows WSL2平台的说明安装NVidia容器工具包。然后可以直接运行EmotiVoice镜像:

docker run -dp 127.0.0.1:8501:8501 syq163/emoti-voice:latest

现在打开浏览器,导航到 http://localhost:8501 ,就可以体验EmotiVoice强大的TTS功能。

完整安装

conda create -n EmotiVoice python=3.8 -y
conda activate EmotiVoice
pip install torch torchaudio
pip install numpy numba scipy transformers==4.26.1 soundfile yacs g2p_en jieba pypinyin

准备模型文件

git lfs install
git lfs clone https://huggingface.co/WangZeJun/simbert-base-chinese WangZeJun/simbert-base-chinese

推理

1. 下载预训练模型, 然后运行:

mkdir -p outputs/style_encoder/ckpt

mkdir -p outputs/prompt_tts_open_source_joint/ckpt

2. 

g_*do_*文件放到outputs/ prompt_tts_open_source_joint/ ckpt

checkpoint_*放到outputs/ style_encoder/ ckpt

3. 推理输入文本格式是:

<speaker>|<style_prompt/emotion_prompt/content>|<phoneme>|<content>.

例如: Maria_Kasper|非常开心|<sos/eos> uo3 sp1 l ai2 sp0 d ao4 sp1 b ei3 sp0 j ing1 sp3 q ing1 sp0 h ua2 sp0 d a4 sp0 x ve2 <sos/eos>|我来到北京,清华大学.

4. 其中的音素(phonemes)可以这样得到:

python frontend.py data/my_text.txt > data/my_text_for_tts.txt.

5. 然后运行:

TEXT=data/inference/text
python inference_am_vocoder_joint.py \
--logdir prompt_tts_open_source_joint \
--config_folder config/joint \
--checkpoint g_00140000 \
--test_file $TEXT

合成的语音结果在:

outputs/prompt_tts_open_source_joint/test_audio.

6. 或者你可以直接使用交互的网页界面:

pip install streamlit
streamlit run demo_page.py

训练

待推出。

未来工作

  • 当前的实现侧重于通过提示控制情绪/风格。它只使用音高、速度、能量和情感作为风格因素,而不使用性别。但是将其更改为样式、音色控制并不复杂,类似于PromptTTS的原始闭源实现。

致谢

  • PromptTTS. PromptTTS论文是本工作的重要基础。

  • LibriTTS. 训练使用了LibriTTS开放数据集。

  • HiFiTTS. 训练使用了HiFi TTS开放数据集。

  • ESPnet.

  • WeTTS

  • HiFi-GAN

  • Transformers

  • tacotron

  • KAN-TTS

  • StyleTTS

  • Simbert

许可

EmotiVoice是根据Apache-2.0许可证提供的 - 有关详细信息,请参阅许可证文件。

交互的网页是根据用户协议提供的。


http://www.niftyadmin.cn/n/5256858.html

相关文章

激动openGauss年末又有大动作

权威行业报告 技术白皮书即将发布 12月28日 openGauss Summit 2023 邀您一起见证 权威行业报告 技术白皮书即将发布 12月28日 openGauss Summit 2023 邀您一起见证

Android 12.0 修改下拉状态栏展开时快捷图标显示行数

Android 12.0 修改下拉状态栏展开时快捷图标显示行数 最近收到项目需求&#xff0c;需要将下拉状态栏展开时快捷图标的显示行数由4行改为3行&#xff0c;具体修改参照如下&#xff1a; /vendor/mediatek/proprietary/packages/apps/SystemUI/res/values/config.xml <!-- T…

网络基础(七):传输层协议介绍

目录 一、TCP协议&#xff08;传输控制协议&#xff09; 1、TCP协议介绍 2、TCP协议特性 3、TCP报文格式 4、TCP的三次握手 4.1TCP三次握手的概念 4.2TCP三次握手流程图 4.3 TCP三次握手阐释说明 5、TCP的四次挥手 5.1TCP四次挥手的概念 5.2TCP四次挥手的流程图 5.…

AtCoder ABC175

C - Walking Takahashi 正数和负数是一样的&#xff0c;因此取绝对值 如果不能移到负半轴&#xff0c;那么终点就是答案 如果能移到负半轴&#xff0c;那么取余数r求r与d-r里的最小值 E - Picking Goods 在单纯的dp路径问题上增加一个维度&#xff0c;表示当前行拿到k个数的情…

求矩阵各行元素之和

本题要求编写程序&#xff0c;求一个给定的mn矩阵各行元素之和。 输入格式&#xff1a; 输入第一行给出两个正整数m和n&#xff08;1≤m,n≤6&#xff09;。随后m行&#xff0c;每行给出n个整数&#xff0c;其间 以空格分隔。 输出格式&#xff1a; 每行输出对应矩阵行元素…

【开源物联,协同成长】TobudOS开放原子训练营第四季线下培训圆满落幕

12月9日&#xff0c;开放原子训练营第四季“开源物联&#xff0c;协同成长”线下培训在深圳成功举办。本次训练营由开放原子开源基金会联合TobudOS团队共同开启&#xff0c;采用线上课程、线下活动相结合&#xff0c;帮助开发者交流嵌入式、物联网操作系统等技术和应用。 Tobud…

Selenium IED-安装及简单使用

本文已收录于专栏 《自动化测试》 目录 背景介绍优势特点安装步骤录制脚本总结提升 背景介绍 Selenium 通过使用 WebDriver 支持市场上所有主流浏览器的自动化。 Webdriver 是一个 API 和协议&#xff0c;它定义了一个语言中立的接口&#xff0c;用于控制 web 浏览器的行为。 每…

【JavaScript】对象的遍历

JavaScript——对象的遍历 属性的可枚举性for...of对象的遍历for...inObject.getOwnPropertyNames()Object.getOwnPropertySymbols()Object.keys()Object.values() | Object.entries()Reflect.ownKeys() 属性的可枚举性 可枚举属性是指那些内部“可枚举”(enumerable)标志设置…