开源TTS+gtx1080+cuda11.7+conda+python3.9吊打百度TTS

一、简介

开源项目,文本提示的生成音频模型

https://github.com/suno-ai/bark

Bark是由Suno创建的基于变换器的文本到音频模型。Bark可以生成极为逼真的多语种演讲以及其他音频 - 包括音乐、背景噪音和简单的声音效果。该模型还可以产生非言语沟通,如笑声、叹息和哭声。为了支持研究社区,我们提供了预训练的模型检查点,可用于推断,并可供商业使用。

二、演示链接:

https://pan.baidu.com/s/1O9_la6TBar75NfI1yut4Lg?pwd=utqg 提取码: utqg

三、支持的语言

Language Status
English (en) ✅
German (de) ✅
Spanish (es) ✅
French (fr) ✅
Hindi (hi) ✅
Italian (it) ✅
Japanese (ja) ✅
Korean (ko) ✅
Polish (pl) ✅
Portuguese (pt) ✅
Russian (ru) ✅
Turkish (tr) ✅
Chinese, simplified (zh) ✅

显卡信息

四、安装步骤

1.安装conda

2.安装python3.9

复制代码
conda create --name brakAI python=3.9

3.激活brakAI环境

复制代码
conda activate barkAI

4.安装 pytorc

复制代码
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.7 -c pytorch -c nvidia

5.查看了版本

复制代码
import torch
print(torch.cuda.is_available())
print(torch.__version__)

6.克隆bark

复制代码
git clone https://github.com/suno-ai/bark
cd bark && pip install . 

7.测试

复制代码
from bark import SAMPLE_RATE, generate_audio, preload_models
from scipy.io.wavfile import write as write_wav
from IPython.display import Audio

# download and load all models
preload_models()

# generate audio from text
text_prompt = """
    CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区.。
"""
audio_array = generate_audio(text_prompt)

# save audio to disk
write_wav("bark_generation22.wav", SAMPLE_RATE, audio_array)
  
# play text in notebook
Audio(audio_array, rate=SAMPLE_RATE)

会自动下载模型文件text_2.pt,也可以自己下载suno/bark at main

模型路径 bark/generation.py

将临时目录改到bark 根目录,模型文件下载到这个目录下

五、网页版提供服务

后端main.pyp

复制代码
# -*- coding: utf-8 -*-
from flask import Flask, request, send_file, render_template_string ,jsonify
from bark import SAMPLE_RATE, generate_audio, preload_models
from scipy.io.wavfile import write as write_wav
import tempfile
import time
import os

app = Flask(__name__)

# 下载和加载所有模型
preload_models()

@app.route('/')
def index():
    return render_template_string(open('templates/index.html').read())

@app.route('/generate', methods=['POST'])
def generate():
    text_prompt = request.form.get('text')
    if text_prompt:
        text_prompt = request.form['text']
        audio_array = generate_audio(text_prompt)
        timestamp = str(int(time.time()))
        filename = timestamp + "times.wav"
        filepath = os.path.join('wavfile', filename)
        write_wav(filepath, SAMPLE_RATE, audio_array)
        file_url = '/wavfile/' + filename
        return jsonify({"file_url": file_url})
    else:
        return "No text provided!", 400

if __name__ == '__main__':
    app.run(host='0.0.0.0' ,debug=True)

前端index.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Text to Audio</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body>
    <div class="container mt-5">
        <h1>Text to Audio Converter By 3yuan 2023.8.22 23.15.00</h1>
        <div class="form-group">
            <label for="text">Enter your text:</label>
            <textarea class="form-control" id="text" rows="4" required></textarea>
        </div>
        <button id="convert" class="btn btn-primary">Convert</button>
                <div  class="mt-3"><a href="https://blog.csdn.net/jxyk2007/article/details/132425993?">Open Source TTS+gtx1080+cuda11.7+conda+python3.9 ,Beat Baidu TTS</a></div>
        <img id="loading" class="img-responsive mt-3" src="{{ url_for('static', filename='loading.gif') }}" style="display: none;" alt="Loading...">
        <div id="result" class="mt-3"></div>
        <div id="result2" class="mt-3">

        </div>

    </div>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script>
        $("#convert").click(function() {
            var text = $("#text").val();
            if (text) {
                $("#loading").show();
                $.post("/generate", { text: text }, function(data) {
                    $("#loading").hide();
                    var link = $('<a href="' + data.file_url + '" download="' + data.file_url + '">Download the audio file</a>');
                    $("#result").html(link);
                    var link2 = $(" <video src="+ data.file_url +" data-canonical-src="+ data.file_url + " controls='controls'   autoplay='autoplay' style='max-height:200px; min-height: 100px'></video>");
                    $("#result2").html(link2);



                });
            } else {
                alert("Please enter some text!");
            }
        });
    </script>
</body>
</html>

其他模型下载,文字转语言

Models - Hugging Face

相关推荐
伞伞悦读5 天前
【第39期】Python 第三方包安装详解:pip、conda、requirements、版本锁定和镜像源
python·conda·pip
梦想不只是梦与想7 天前
环境管理:Conda 与 venv
python·conda·uv
梦想不只是梦与想9 天前
环境管理系统:Conda(一)
python·conda·环境隔离
Blockbuater_drug10 天前
Protenix: conda 环境部署、零基础安装
conda·开源模型·字节跳动·v2·蛋白结构预测·protenix
AlfredZhao10 天前
执行新项目 python 脚本前,先用 conda 建一个独立环境
conda
THe CHallEnge of THe BrAve14 天前
conda虚拟环境打包离线迁移
conda
basketball61620 天前
AI Infra 配置 Conda + CUDA + LibTorch + PyTorch 开发环境:解决版本漂移、编译报错的完整指南
人工智能·pytorch·conda·libtorch
公爵爱学习20 天前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机
长江后浪博客1 个月前
Conda环境下测试Intel NPU:Python版本如何选择?
开发语言·python·conda·openvino·intel npu
伞伞悦读1 个月前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda