支持多语言的MeloTTS模型最新语音合成部署分享(不看后悔)

MeloTTS是一个由MyShell AI开发的高质量文本转语音(Text-to-Speech, TTS)框架,它被设计用于生成自然流畅的人声。

这个框架的特点在于其灵活性和定制能力,允许用户根据特定的需求训练出具有独特音色和口音的TTS模型。

MeloTTS的语音合成速度快,即使在没有GPU加速的普通CPU上也能实现实时语音合成,生成高质量、自然流畅的语音输出。

MeloTTS支持多种语言,包括英语、西班牙语、法语、中文、日语和韩语等,能够将文本转换成自然流畅的语音输出。

它特别针对中文用户,支持中英文混合发音,可以处理包含英文单词的中文文本,这对于多语言交流和国际化应用场景非常有用。

github项目地址为:https://github.com/myshell-ai/MeloTTS。

一、环境安装

1、python环境

建议安装python版本在3.10以上。

2、pip库安装

cd MeloTTS

pip install -e .

python -m unidic download

、功能测试

1、文本转语音命令行测试

python melo/app.py

2、python web接口代码测试

import gradio as gr

import io

from melo.api import TTS

import click

#设置语速

speed = 1.0

device = 'auto'



models = {

'EN': TTS(language='EN', device=device),

'ES': TTS(language='ES', device=device),

'FR': TTS(language='FR', device=device),

'ZH': TTS(language='ZH', device=device),

'JP': TTS(language='JP', device=device),

'KR': TTS(language='KR', device=device),

}



speaker_ids = models['EN'].hps.data.spk2id



default_text_dict = {

'EN': 'The field of text-to-speech has seen rapid development recently.',

'ES': 'El campo de la conversión de texto a voz ha experimentado un rápido desarrollo recientemente.',

'FR': 'Le domaine de la synthèse vocale a connu un développement rapide récemment',

'ZH': 'text-to-speech 领域近年来发展迅速',

'JP': 'テキスト読み上げの分野は最近急速な発展を遂げています',

'KR': '최근 텍스트 음성 변환 분야가 급속도로 발전하고 있습니다.',

}



#合成语音函数

def synthesize(speaker, text, speed, language, progress=gr.Progress()):

bio = io.BytesIO()

models[language].tts_to_file(text, models[language].hps.data.spk2id[speaker], bio, speed=speed, pbar=progress.tqdm, format='wav')

return bio.getvalue()



#加载发音人及文本函数

def load_speakers(language, text):

if text in list(default_text_dict.values()):

newtext = default_text_dict[language]

else:

newtext = tex

return gr.update(value=list(models[language].hps.data.spk2id.keys())[0], choices=list(models[language].hps.data.spk2id.keys())), newtext



#创建Gradio界面

with gr.Blocks() as demo:

gr.Markdown('#MeloTTS WebUI\n\n这是一个MeloTTS的Web界面。')

with gr.Group():

speaker = gr.Dropdown(speaker_ids.keys(), interactive=True, value='EN-US', label='发音人')

language = gr.Radio(['EN', 'ES', 'FR', 'ZH', 'JP', 'KR'], label='语言', value='EN')

speed = gr.Slider(label='速度', minimum=0.1, maximum=10.0, value=1.0, interactive=True, step=0.1)

text = gr.Textbox(label="文本转语音", value=default_text_dict['EN'])

language.input(load_speakers, inputs=[language, text], outputs=[speaker, text])

btn = gr.Button('合成', variant='primary')

aud = gr.Audio(interactive=False)

btn.click(synthesize, inputs=[speaker, text, speed, language], outputs=[aud])

gr.Markdown('MeloTTS WebUI Demo')



@click.command()

@click.option('--share', '-s', is_flag=True, show_default=True, default=False)

@click.option('--host', '-h', default="0.0.0.0")

@click.option('--port', '-p', type=int, default=7865)

def main(share, host, port):

demo.queue(api_open=False).launch(show_api=False, share=share, server_name=host, server_port=port)



if name == "__main__":

main()

3、python流式分段推理接口代码测试

未完......

更多详细的内容欢迎关注:杰哥新技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值