开源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

相关推荐
爱吃油淋鸡的莫何1 天前
Conda新建python虚拟环境问题
开发语言·python·conda
Teleger3 天前
使用python来保存键盘输入情况,可保存到sqlite3数据库
python·conda
MonkeyKing_sunyuhua3 天前
Ubuntu 中无法直接使用 `conda` 命令,设置conda的环境变量
linux·ubuntu·conda
哆啦叮当4 天前
Linux下root用户共享conda环境给其他用户
linux·运维·服务器·python·conda
985小水博一枚呀5 天前
【深度学习|PyTorch】基于 PyTorch 搭建 U-Net 深度学习语义分割模型——附代码及其解释!
网络·人工智能·pytorch·python·深度学习·conda·numpy
chen_zn955 天前
conda常用指令
conda
AI浩9 天前
Conda和pip 清空缓存
conda·pip
技shu支持9 天前
PyCharm与Anaconda超详细安装配置教程
ide·python·pycharm·conda
SteveMiller11 天前
conda、anaconda、pip、torch、pytorch、tensorflow到底是什么东西?(转载自本人的知乎回答)
pytorch·conda·pip
深蓝海拓11 天前
新电脑安装和配置pytorch、anaconda、CUDA、cuDNN、pycharm的过程记录
人工智能·pytorch·python·pycharm·conda