首页 > 其他分享 >text2speech文生音频模型XTTS-V2部署带UI

text2speech文生音频模型XTTS-V2部署带UI

时间:2024-07-11 16:54:43浏览次数:16  
标签:文生 data v2 sample V2 UI XTTS wav config

text2speech文生音频模型XTTS-V2部署带UI

模型下载链接,及前端代码效果链接见个人博客:
https://pylzzz.online

效果图:
请添加图片描述
python后端代码 flask框架
由于使用的是自己电脑的gpu运算,所以中间有转发的过程,利用内网穿透和虚拟局域网通信。
内网穿透教程可见个人博客
所需依赖 tts flask等

from TTS.tts.configs.xtts_config import XttsConfig
from TTS.tts.models.xtts import Xtts
import soundfile as sf
import numpy as np
from flask import Flask, request, jsonify, session, redirect, url_for
from flask_cors import CORS
import uuid
import subprocess

app = Flask(__name__)
CORS(app)

config = XttsConfig()
config.load_json("./XTTS-v2/config.json")

model = Xtts.init_from_config(config)
model.load_checkpoint(config, checkpoint_dir="./XTTS-v2/", eval=True)
model.cuda()
language_to_audio = {
    "en": "./XTTS-v2/samples/en_sample.wav",
    "es": "./XTTS-v2/samples/es_sample.wav",
    "fr": "./XTTS-v2/samples/fr_sample.wav",
    "de": "./XTTS-v2/samples/de_sample.wav",
    "zh": "./XTTS-v2/samples/zh-cn-sample.wav",
    "ja": "./XTTS-v2/samples/ja-sample.wav",
    "pt": "./XTTS-v2/samples/pt_sample.wav",
    "tr": "./XTTS-v2/samples/tr_sample.wav",
    # 添加更多语言及对应的语音文件
}
@app.route('/api/xtts', methods=['POST'])
def xtts():
    data = request.json
    # 处理接收到的表单数据
    print('Received form data:', data)
    text = data.get("sentence")
    lan = data.get("lant")
    filename = data.get("ref_name")
    url=f"https://pylzzz.online/wav/{filename}"
    saveurl=f"/var/www/html/wav/{filename}"
    if not filename:
        saveurl = language_to_audio.get(lan)
    else:
        result = subprocess.run(['wget', '-O',saveurl ,url], capture_output=True, text=True)

    outputs = model.synthesize(
        text,
        config,
        speaker_wav=saveurl,
        gpt_cond_len=3,
        language=lan,
    )

    wav_data = outputs['wav']
    # 提取采样率
    sampling_rate = config.audio['output_sample_rate']

    # 检查输出格式并将其保存为 WAV 文件
    newfilename = f"{uuid.uuid4()}.wav"
    if isinstance(wav_data, np.ndarray):
        sf.write(f'/var/www/html/wav/{newfilename}', wav_data, sampling_rate)
    else:
        raise TypeError("Outputs should be a NumPy array")

    return jsonify(message="Data received and forwarded", file=newfilename)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=3000)

标签:文生,data,v2,sample,V2,UI,XTTS,wav,config
From: https://blog.csdn.net/qq_43182415/article/details/140356500

相关文章

  • Linux-Cgroup V2 初体验
    本文主要记录LinuxCgroupV2版本基本使用操作,包括cpu、memory子系统演示。1.开启CgroupV2版本检查通过下面这条命令来查看当前系统使用的CgroupsV1还是V2stat-fc%T/sys/fs/cgroup/如果输出是cgroup2fs那就是V2,就像这样root@tezn:~#stat-fc%T/sys/fs/......
  • QtQuick.Dialogs中的FileDialog设置默认目录的问题
    在QML中,假如想要使用文件浏览器选择文件或者文件夹时。可以使用FileDialog。FileDialog有个属性folder,设置好路径之后,当你打开fileDialog时,fileDialog当前定位到的路径就是你设置的路径。但是这个folder的设置有点问题,和路径的层级有关系假如你的目标路径是大于等于三级的(比如......
  • 界面组件Kendo UI for React 2024 Q2亮点 - 生成式AI集成、设计系统增强
    随着最新的2024年第二季度发布,KendoUIforReact为应用程序开发设定了标准,包括生成式AI集成、增强的设计系统功能和可访问的数据可视化。新的2024年第二季度版本为应用程序界面提供了人工智能(AI)提示,从设计到代码的生产力增强、可访问性改进、一系列新的UI组件等。KendoUI致力......
  • layui js thymeleaf 公共工具类
    layuijsthymeleaf公共工具类其中功能包括:普通表格渲染树形表格渲染普通编辑(添加/删除/编辑)更多编辑(添加/编辑/更多)上传图片constcommon={getTable(table,url,cols,condition){if(!condition||condition==''){condition=......
  • Unity中用于处理 UI 的射线检测和事件处理的两种脚本
    GraphicRaycaster组件GraphicRaycaster是Unity中用于UI系统的射线检测组件。它主要用于检测屏幕上的图形界面元素(如按钮、图片、文本等)的点击事件,并将这些事件传递给相应的UI元素。主要功能射线检测:用于检测屏幕空间中的射线,确定用户点击了哪个UI元素。UI交互:处理......
  • YOLOv10改进 | Conv篇 | 轻量级下采样方法ContextGuided(大幅度涨点)
     一、本文介绍本文给大家带来的是改进机制是一种替换Conv的模块ContextGuidedBlock(CGblock) ,其是在CGNet论文中提出的一种模块,其基本原理是模拟人类视觉系统依赖上下文信息来理解场景。CGblock用于捕获局部特征、周围上下文和全局上下文,并将这些信息融合起来以提高准......
  • Ollama完整教程:本地LLM管理、WebUI对话、Python/Java客户端API应用
    老牛同学在前面有关大模型应用的文章中,多次使用了Ollama来管理和部署本地大模型(包括:Qwen2、Llama3、Phi3、Gemma2等),但对Ollama这个非常方便管理本地大模型的软件的介绍却很少。目前,清华和智谱AI联合发布开源的GLM4-9B大模型也能支持Ollama进行本地部署了(本地部署GLM-4-9B清华......
  • [C++] C++20约束表达式和requires子句
    约束约束是逻辑操作和操作数的序列,它指定了对模板实参的要求。合取两个约束的合取是用&&运算符。template<typenameT>conceptluser=std::integral<T>&&std::signed_integral<T>;需要约束同时满足两个要求。合取判断的时候,使用短路检测,即对std::integra......
  • Arduino小车感应跟随
    //前进voidForward(){digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,LOW);}//后退voidBackOff(){digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,HIGH);}//左转voidTurnLeft......
  • GOLLIE : ANNOTATION GUIDELINES IMPROVE ZERO-SHOT INFORMATION-EXTRACTION
    文章目录题目摘要引言方法实验消融题目Gollie:注释指南改进零样本信息提取论文地址:https://arxiv.org/abs/2310.03668摘要    大型语言模型(LLM)与指令调优相结合,在泛化到未见过的任务时取得了重大进展。然而,它们在信息提取(IE)方面不太成功,落后于特定任......