文本生成声音

2024/11/05 soft 共 5169 字,约 15 分钟

测试环境

设备电脑信息显卡
A处理器 Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz 2.90 GHz
机带 RAM 32.0 GB (31.7 GB 可用)
系统类型 64 位操作系统, 基于 x64 的处理器
NVIDIA GeForce GTX 1060 5GB
B处理器 Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz 3.40 GHz
机带 RAM 8.00 GB
系统类型 64 位操作系统, 基于 x64 的处理器
NVIDIA GeForce GTX 1050 Ti
C  

文本生成声音

Fish Speech

官网

官网直接使用:Fish Audio: Free Generative AI Text To Speech & Voice Cloning 通过官网的 例子 可以感受到强大。

可以克隆声音:https://fish.audio/zh-CN/train/new-model/

官网的文本生成语音的速度:500字以内3秒出结果。

本地部署

官网安装 介绍,参考:WSL2里安装:

# 创建一个 python 3.10 虚拟环境, 你也可以用 virtualenv
conda create -n fish-speech python=3.10
conda activate fish-speech

# 安装 pytorch
pip3 install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121

# 安装 fish-speech
pip3 install -e .

# (开启编译加速) 安装 triton-windows
pip install https://github.com/AnyaCoder/fish-speech/releases/download/v0.1.0/triton_windows-0.1.0-py3-none-any.whl

模型:fish-speech-1.5 · 模型库

提示:CUDA is not available, running on CPU. 安装 CUDA Toolkit

运行:

 cd tools/ 
 python run_webui.py

成功启动提示:

Warming up done, launching the web UI...
* Running on local URL:  http://127.0.0.1:7860

浏览器访问:http://127.0.0.1:7860

出现错误:**'list' object has no attribute 'strip'** ,解决办法:Use Memory Cache 勾选 off

测试发现特别慢,不知道是不是跟CUDA is not available有关系,重启电脑后不再出现这个提示,应该是启用了,速度是稍微快了点,但是整体还是很慢。500字以内的文本在设备A上用了70多秒才完成。添加上参数--compile重新启动,发现电脑性能跟不上,提示:

backend='inductor' raised: RuntimeError: Found NVIDIA GeForce GTX 1060 5GB which is too old to be supported by the triton GPU compiler, which is used as the backend. Triton only supports devices of CUDA Capability >= 7.0, but your device is of CUDA capability 6.1 Set TORCH_LOGS="+dynamo" and TORCHDYNAMO_VERBOSE=1 for more information You can suppress this exception and fall back to eager by setting: import torch._dynamo torch._dynamo.config.suppress_errors = True

使用效果:

  • 官网速度和效果较好,但是每次限制500字,且网站被墙,国内没办法直接访问。
  • 本地部署对电脑性能要求较高,速度非常慢,期待官网能够继续优化吧。
  • 本地合成的语音效果不如官网,感觉不是很像原音,但是勉强能用。

MoneyPrinterTurbo

harry0703/MoneyPrinterTurbo: 利用AI大模型,一键生成高清短视频 Generate short videos with one click using AI LLM.

下载后解压,运行update.bat进行更新,按照官方的推荐用法是使用本地服务器的形式,运行start.bat

但是这种用Web网页的形式不方便,我们进行改造一下,可以直接调用命令行方式使用。

  1. 安装Python依赖库,pip install -r MoneyPrinterTurbo\requirements.txt
  2. 在目录:MoneyPrinterTurbo\webui 下新建tts.py,内容如下:
import os
import sys

# Add the root directory of the project to the system path to allow importing modules from the project
root_dir = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
if root_dir not in sys.path:
    sys.path.append(root_dir)
    print("******** sys.path ********")
    print(sys.path)
    print("")

from app.services import voice


play_content = '''
这里填想要生成语音的文本
'''
voice_name = 'zh-CN-XiaoxiaoNeural'
voice_rate = 1.0
audio_file = 'e:\\test.mp3'
sub_maker = voice.tts(
            text=play_content,
            voice_name=voice_name,
            voice_rate=voice_rate,
            voice_file=audio_file,
        )
# if the voice file generation failed, try again with a default content.
if not sub_maker:
    play_content = "This is a example voice. if you hear this, the voice synthesis failed with the original content."
    sub_maker = voice.tts(
        text=play_content,
        voice_name=voice_name,
        voice_rate=voice_rate,
        voice_file=audio_file,
    )

  1. 使用时修改文本内容、声音名称、保存文件路径即可。

    2024-12-06 17:57:43.709 | INFO     | app.config.config:load_config:22 - load config from file: E:\soft\MoneyPrinterTurbo-Portable-Windows-1.2.1\MoneyPrinterTurbo/config.toml
    2024-12-06 17:57:43.710 | INFO     | app.config.config:<module>:70 - MoneyPrinterTurbo v1.2.2
    2024-12-06 17:57:43 | INFO | "./app\services\voice.py:1081": azure_tts_v1 - start, voice name: zh-CN-XiaoxiaoNeural, try: 1
    2024-12-06 17:57:48 | INFO | "./app\services\voice.py:1101": azure_tts_v1 - completed, output file: e:\test.mp3
    

使用效果:

  1. 预制的声音选项较多,也支持中文,合成的声音自然,已经接近商用水平了,效果很好。
  2. 截止到目前(2024-12-12),还不支持自定义声音克隆,期待增加。

MockingBird

babysor/MockingBird: 🚀AI拟声: 5秒内克隆您的声音并生成任意语音内容 Clone a voice in 5 seconds to generate arbitrary speech in real-time

中文文档:MockingBird/README-CN 中文

安装步骤可以参考这个图文教程:初尝 Mocking Bird 语音合成初尝 Mocking Bird 语音合成,介绍地比较详细。

  1. 安装Python3。选用 镜像网站 下载Python3.9.13安装包:python-3.9.13-amd64.exe。这里一定要尽量贴合官方推荐的版本,过高的版本后面会存在莫名其妙的问题。

  2. 下载项目代码。创建MockingBird文件夹,clone项目代码或者直接下载ZIP包后解压到该目录下。

  3. 创建Python虚拟环境。在MockingBird根目录下执行命令:D:\Python\Python39\python.exe -m venv venv 然后在该目录下执行命令验证虚拟环境是否安装成功:venv\Scripts\pip3 -V

  4. 安装 PyTorch。选择好适合本机的参数,复制安装命令并执行,例如:.\venv\Scripts\python -m pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

  5. 安装ffmpeg。打开ffmpeg网址ffmpeg-master-latest-win64-gpl.zip下载,安装后设置好环境变量,确保直接使用命令能够访问到ffmpeg。

  6. 安装Python依赖库。运行.\venv\Scripts\python -m pip install -r requirements.txt 来安装,如果速度较慢可以使用国内镜像。monotonic-align的版本问题官方代码已经修过了,因此这里无须再做额外修改。

    • 如果本机电脑没有安装VisualStudio,需要安装之。
    • PydanticImportError:pydantic:parse raw as has been removed in V2.,这开源项目,这东西已被从V2中移除,这兼容性一言难尽。修复方法是安装旧版的,把 pydantic 版本降下来,执行.\venv\Scripts\python -m pip install "pydantic < 2.0.0"
  7. 运行.\venv\Scripts\python web.py

      You can now view your Streamlit app in your browser.
       
      Local URL: http://localhost:8080
      Network URL: http://10.219.21.30:8080
      External URL: http://103.126.92.182:8080
    

    在浏览器中访问:http://localhost:8080,出现错误,主要原因是缺少模型文件,需要下载并配置。

  8. 下载并配置模型文件。https://pan.baidu.com/share/init?surl=fMh9IlgKJlL2PIiRTYDUvw?pwd=om7f,或者 https://pan.baidu.com/s/1jgSUX6I732CScoYPjzIW0g?pwd=w331 下载后将模型文件(例如:pretrained-11-7-21_75k.pt)放入\data\ckpt\synthesizer中,synthesizer是新建的文件夹,源代码中是不存在。

  9. 重新运行.\venv\Scripts\python web.py,在浏览器中访问:http://localhost:8080

    • 如果缺少模块audio recorder_streamlit,则安装:`.venv\Scripts\python -m pip install audio recorder_streamlit

使用效果:

  1. 安装过程稍微有点复杂。
  2. 成功运行后的浏览器页面是挺简单的。
  3. 亮点是支持自定义声音克隆,但是语音合成效果很差,没法使用。
  4. 支持中文,杂音较多,可能跟WAV的纯净度有关,生成的声音有些文字压根就没有出来,就是一堆噪音,另外读起来也是一个字一个字蹦出来的,不够自然流畅。

文档信息

Search

    Table of Contents