Fish Speech 部署教程【最好用的TTS】

部署运行你感兴趣的模型镜像

Fish Speech 部署教程

项目介绍

Fish Speech 是一个开源的 SOTA(State-of-the-Art)文本转语音(TTS)系统,由 fishaudio 团队开发。该项目在 TTS-Arena2 排行榜上获得了第一名的成绩,代表了当前开源 TTS 技术的最高水平。

主要特点

1. 卓越的语音质量

  • 在英文文本上实现了 0.008 的 WER(词错误率)和 0.004 的 CER(字符错误率)
  • 在 Seed-TTS Eval 评估中,CER 约为 0.4%,WER 约为 0.8%
  • TTS-Arena2 获得第一名

2. 零样本和少样本语音克隆

  • 只需 10-30 秒的语音样本即可生成高质量的 TTS 输出
  • 无需大量训练数据即可克隆声音

3. 多语言和跨语言支持

  • 支持英语、日语、韩语、中文、法语、德语、阿拉伯语和西班牙语
  • 只需复制粘贴多语言文本,无需担心语言识别问题
  • 强大的跨语言合成能力

4. 不依赖音素

  • 模型具有强大的泛化能力,不依赖音素进行 TTS
  • 可以处理任何语言脚本的文本

5. 高性能

  • 使用 torch compile 加速
  • 在 Nvidia RTX 4090 GPU 上,实时因子约为 1:7
  • 推理速度快,适合实时应用

6. 丰富的语音控制

  • 支持多种情感标记:愤怒、悲伤、兴奋、惊讶等 20+ 种基础情感
  • 支持高级情感:讽刺、犹豫、尴尬等 25+ 种复杂情感
  • 支持语气标记:低语、喊叫、柔和语气等
  • 支持特殊音效:笑声、哭泣、叹息、喘息等

7. 易于部署

  • 提供基于 Gradio 的 WebUI 界面
  • 原生支持 Linux 和 Windows(macOS 支持即将推出)
  • 可轻松搭建推理服务器

部署过程

前置条件

在开始部署之前,请确保已安装以下工具:

  • Git:用于克隆项目代码
  • Conda:用于管理 Python 虚拟环境
  • NVIDIA 驱动:确保显卡驱动已正确安装
  • sudo 权限:用于安装系统依赖包

1. 系统要求

支持的系统:

  • Linux
  • WSL (Windows Subsystem for Linux)

硬件要求:

  • GPU 内存:至少 12GB(推理)

2. 克隆项目

首先使用 Git 克隆 Fish Speech 项目到本地:

git clone https://github.com/fishaudio/fish-speech.git
cd fish-speech

3. 下载模型文件

需要手动下载预训练模型文件到项目的 checkpoints/fish-speech-1.5 目录下。

模型下载地址: https://huggingface.co/fishaudio/fish-speech-1.5/tree/main

步骤:

  1. 在项目根目录下创建目录结构:

    mkdir -p checkpoints/fish-speech-1.5
    
  2. 访问 Hugging Face 模型仓库,下载所有模型文件

  3. 将下载的模型文件放置到 checkpoints/fish-speech-1.5/ 目录下

目录结构示例:

fish-speech/
└── checkpoints/
    └── fish-speech-1.5/
        ├── model.pth
        ├── config.json
        └── [其他模型文件]

4. 安装系统依赖

安装用于音频处理的系统依赖项:

sudo apt install portaudio19-dev libsox-dev ffmpeg

5. 配置 Python 环境

使用 Conda 创建并激活 Python 虚拟环境:

# 创建 Python 3.12 环境
conda create -n fish-speech python=3.12

# 激活环境
conda activate fish-speech

6. 安装 UV 包管理器

在虚拟环境中安装 UV:

pip3 install uv

7. 安装项目依赖

使用 UV 安装项目依赖(根据 GPU 版本选择对应的 CUDA 版本):

# GPU 安装 (选择您的 CUDA 版本: cu126, cu128, cu129)
uv sync --python 3.12 --extra cu129

注意: 安装 CUDA 之前需要查看自己的显卡版本支持哪个 CUDA 版本。

查看显卡支持的 CUDA 版本:

nvidia-smi

查看输出中的 “CUDA Version” 字段,选择对应或更低的 CUDA 版本进行安装。

8. 启动 Web UI 界面

完成安装后,可以使用以下命令启动 Web 界面:

uv run python -m tools.run_webui

启动成功后,Web UI 默认会在 http://127.0.0.1:7860 上运行。在浏览器中访问该地址即可使用 Fish Speech 的 Web UI 界面。

9. 启动 API 服务器(可选)

如果需要在其他项目中集成 Fish Speech 的 API,可以启动 API 服务器:

uv run python -m tools.api_server --listen 0.0.0.0:2000

访问 API 文档:

启动后,在浏览器中访问 http://127.0.0.1:2000 即可查看 API 接口文档。

通过 API 服务器,你可以在其他应用程序中调用 Fish Speech 的文本转语音功能。

您可能感兴趣的与本文相关的镜像

HunyuanVideo-Foley

HunyuanVideo-Foley

语音合成

HunyuanVideo-Foley是由腾讯混元2025年8月28日宣布开源端到端视频音效生成模型,用户只需输入视频和文字,就能为视频匹配电影级音效

<think>好的,我现在需要帮助用户解决如何部署Fish Speech 1.5 TTS模型以实现流式功能的问题。首先,我得回想一下用户之前提到的引用内容。引用[2]提到Fish Speech 1.5是基于Transformer、VITS、VQVAE和GPT等技术,支持多种语言和零样本合成。用户现在想知道如何部署这个模型进行流式处理,也就是实时生成语音输出。 首先,我需要明确流式部署的关键点。流式处理通常需要模型能够逐步生成输出,而不是等待整个输入处理完毕。对于TTS模型来说,这可能涉及到分块处理文本,并逐步生成语音片段。接下来,我需要考虑Fish Speech 1.5的架构是否支持这种处理方式。例如,基于Transformer或GPT的模型可能有自回归特性,适合流式生成,但需要检查具体的模型结构。 然后,用户提供的引用[1]提到了如何下载模型权重,使用huggingface-cli或git clone。这可能是部署的第一步,确保用户已经正确获取了模型文件。但用户的问题是关于流式部署,所以需要进一步的信息。可能需要查阅Fish Speech的官方文档或示例代码,看看是否有流式处理的示例或API支持。 接下来,我需要考虑流式处理的具体实现步骤。通常,这可能包括: 1. 模型分块推理:将输入文本分成较小的块,逐步输入模型生成语音。需要确保模型能够处理部分输入并生成对应的语音片段,同时保持上下文连贯。 2. 实时传输:生成的语音片段需要及时传输到客户端,可能涉及网络编程和缓冲管理。 3. 延迟优化:减少处理延迟,确保实时性。可能需要调整模型参数、使用更快的推理框架(如ONNX Runtime或TensorRT)或者量化模型。 4. 异步处理:使用多线程或异步IO来处理模型推理和音频传输,避免阻塞。 另外,Fish Speech 1.5的代码库中可能有相关的配置选项或参数支持流式处理。例如,是否有一个参数可以控制生成步长或分块大小。需要检查模型的推理脚本或配置文件中是否有这样的设置。 可能还需要考虑硬件加速,比如使用GPU进行推理,以提高生成速度。同时,内存管理也很重要,流式处理可能需要持续的内存释放和加载,避免内存溢出。 用户可能需要具体的代码示例。例如,修改现有的推理脚本,使其逐步生成语音。假设官方提供的代码是批量处理的,可能需要将其拆分成循环处理每个文本块,并实时输出音频。 此外,可能涉及到音频缓冲区的处理。例如,生成一段音频后立即播放或传输,同时模型继续处理下一段文本。这需要处理音频的拼接和同步问题,确保无缝衔接。 最后,需要验证流式部署的效果,测试延迟和语音质量是否满足要求。如果发现延迟过高,可能需要进一步优化模型或调整分块大小。 总结一下,步骤可能包括:下载模型、修改推理代码支持分块处理、实现异步IO、优化延迟,并进行测试。同时,参考官方文档和社区资源是否有现成的流式部署方案。</think>以下是部署Fish Speech 1.5实现流式功能的步骤指南: ### 一、环境准备 1. 下载模型权重(需16GB显存): ```bash huggingface-cli download fishaudio/fish-speech-1.5 --local-dir checkpoints/fish-speech-1.5 # 或使用镜像源 git clone https://hf-mirror.com/fishaudio/fish-speech-1.5 ``` [^1] 2. 安装依赖库: ```bash pip install "fish-speech>=0.1.4" torchaudio ``` ### 二、流式部署实现 #### 关键原理 通过$TTS \rightarrow AR Decoder \rightarrow Vocoder$的流水线架构,采用分块处理实现流式: $$ \text{Text Chunk}_t \xrightarrow{Encoder} \text{Latent}_t \xrightarrow{Decoder} \text{Audio}_t $$ [^2] #### 代码改造 ```python from fish_speech.models.text2semantic.utils import stream_generate # 流式生成函数 async def stream_synthesis(text, max_chars=50): # 分块处理文本 for i in range(0, len(text), max_chars): chunk = text[i:i+max_chars] # 生成语音特征 features = model.encode(chunk) # 流式解码 async for audio_chunk in stream_generate(features): yield audio_chunk ``` ### 三、性能优化 1. **显存优化**: ```python model = AutoModelForTextToSpeech.from_pretrained( "checkpoints/fish-speech-1.5", torch_dtype=torch.float16, use_flash_attention_2=True # 启用Flash Attention ).cuda() ``` 2. **延迟控制**: ```python # 调整解码参数 generation_config = { "max_new_tokens": 200, "chunk_size": 5, # 控制流式分块大小 "temperature": 0.7, } ``` ### 四、部署架构 ``` [Client] │ WebSocket │ ┌───────────▼───────────┐ │ API Server (FastAPI) │ └───────────┬───────────┘ │ Message Queue (Redis) │ ┌───────────▼───────────┐ │ Worker (GPU Instance)│ └───────────────────────┘ ``` ### 五、测试验证 使用WebSocket测试流式效果: ```python from websockets.sync.client import connect with connect("ws://localhost:8000/stream") as websocket: websocket.send("你好,这是流式语音测试") while True: audio_chunk = websocket.recv() if not audio_chunk: break play_audio(audio_chunk) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值