语音合成工具_bark

news/2024/11/17 15:54:46/

1 介绍

多语言的文字转语音模型。
地址: https://github.com/suno-ai/bark

2 模型原理

Bark通过三个Transformer模型,将文本转换为音频。

2.1 文本到语义Token

输入:由Hugging Face的BERT标记器分词的文本
输出:编码生成音频的语义Token

2.2 语义到粗略Token

输入:语义Token
输出:来自Facebook的EnCodec编解码器的前两个codebooks的Token

2.3 粗略到细节Token

输入:EnCodec的前两个codebooks
输出:EnCodec的8个codebooks

3 使用方法

3.1 环境配置

docker pull pytorch/pytorch:2.0.0-cuda11.7-cudnn8-runtime

运行docker

nvidia-docker run -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all -p 8893:8888 -v /raid/:/opt/raid --gpus all --rm -it pytorch/pytorch:2.0.0-cuda11.7-cudnn8-runtime bash

3.2 安装 bark

进入docker后:

# 安装 bark
git clone https://github.com/suno-ai/bark
cp /xxx/pip.conf /root/.pip/
export http_proxy=http://192.168.1.22:xxxx
export https_proxy=http://192.168.1.22:xxxx
cd bark
python setup.py install# 安装 jupyter
pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions
jupyter notebook --allow-root -y --no-browser --ip=0.0.0.0

3.3 测试

设置环境变量:

import os
os.environ['SUNO_USE_SMALL_MODELS'] = 'True'
os.environ['XDG_CACHE_HOME'] = 'set local path to save models' 
# default path: /USER_DIR/.cache/suno/bark_v0

合成语音:

from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio# download and load all models
preload_models()# generate audio from text
text_prompt = """我要试试能不能合成中文
"""
audio_array = generate_audio(text_prompt)# play text in notebook
Audio(audio_array, rate=SAMPLE_RATE)

4 用后感

  • 试用SMALL版本,一共下载三个模型,大小分别是1.1G,1.2G,2.5G,不是很大。
  • 试用普通版本,一共下载三个模型,大小分别是3.5G, 3.7G, 5.5G,运行时占GPU 6G左右。
  • 小模型中英文都能合成人声,但听起来比较粗糙,普通模型比较清晰。 流畅度还可以,对于中文的语调感觉不太好,无论模型大小均有此问题,有丢字,错误问题。
  • 可以用提示指定男声或女声。
  • 没看到论文,基本是现有技术的组合,结构类似AudioLM。

5 参考资料

[语音合成最新技术分享]https://zhuanlan.zhihu.com/p/622980527


http://www.ppmy.cn/news/73362.html

相关文章

【面试高频 time: 2023-5-18】做分布式文件存储,如何保证分布式存储的高性能与高可用?

大家可以想到基本就是副本备份、双活、多活这种架构 在系统中通过复制协议将数据同步到多个存储节点,并确 保多个副本之间的数据⼀致性,当某个存储节点出故障 时,系统能够⾃动将服务切换到其他的副本 在分布式存储中⾼性能与⾼可⽤是⽭盾的&…

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发(目前版本V1.1.7) 授权方式:三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代(markdown输出)PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…

Requests的使用例子

Requests库是一个Python HTTP客户端库,用于向Web服务器发送HTTP请求。它提供了简单而直观的API,使得向Web服务器发送HTTP请求变得非常容易。以下是Requests库的一些功能和示例: 1、发送HTTP GET请求 发送HTTP GET请求非常简单,只…

查看linux日志以及处理不能登录mysql的错误

要查看MariaDB的日志文件,可以使用以下命令: 1. 错误日志文件: bash sudo cat /var/log/mariadb/error.log 这将显示MariaDB的错误日志文件的内容。如果在默认位置找不到错误日志文件,您可以尝试查找其他可能的位置&#…

Activiti实战——Springboot整合Activiti

目录 一、Activiti数据库表名说明 二、Spring boot整合activiti 1. 创建springboot项目 2. 引入activiti依赖及项目依赖 3. 配置数据源 (1)创建数据源配置文件 (2)配置文件 4. 配置Acitviti引擎 5. 启动项目 三、Activiti…

DJ5-4 交换局域网(第一节课)

目录 一、局域网概述 1、LAN 的特点和分类 2、常见的网络拓扑结构 二、计算机与局域网的连接 三、局域网体系结构 四、链路层寻址地址 1、MAC 地址分配 2、MAC 地址识别 五、ARP 地址解析协议 1、ARP 地址解析协议 2、ARP:两个主机位于同一个局域网 3、…

Godot引擎 4.0 文档 - 入门介绍 - Godot 关键概念概述¶

本文为Google Translate英译中结果,DrGraph在此基础上加了一些校正。英文原版页面:Overview of Godots key concepts — Godot Engine (stable) documentation in English Godot 关键概念概述 每个游戏引擎都围绕您用来构建应用程序的抽象展开。在 Godo…

AUTOSAR知识点 之 COM (二):ISOLAR-AB的配置

目录 1、概述 2、ISOLAR-AB配置 2.1、ComGeneral 2.2、ComConfig 2.2.1、ComGwMapping 2.2.2、ComIPduGroups 2.2.3、ComIPdus