Mac 电脑本地部署 Spark - TTS 文本转语音大模型

简单介绍

Spark - TTS 这个文本转语音大模型突然火起来了,我也跟风下载下来做了本地部署体验体验。

这是它的 github 地址。github.com/SparkAudio/...

官方介绍说了它的 4 个特点:

以上是官方自己的介绍。针对这个我说一下自己的感受。

  1. 简单而高效

    这一点确实,下载部署安装确实够简单也不需要额外的折腾。完成后使用方式上,也提供了 web GUI 操作界面让用户快速体验,确实不错。

  2. 高质量的克隆

    这一点非常的厉害,甚至是"惊艳"到了。(也可能是因为第一次体验这类零样本克隆声音的大模型,确实挺有冲击感)只要环境稍微安静点,仅仅送入 5 到 10 秒的音频,它克隆出来的声音确实非常接近真人。

  3. 双语支持

    同时支持中文和英文。尤其是中文,感觉生成的音色要比英文的好听,自然很多。

  4. 可控的语音生成

    它也内置了性别,语调,语速的控制入口, web GUI 操作界面就能快速体验到。

本地部署

按 github 上的操作步骤来:

第一步先克隆到本地

bash 复制代码
git clone https://github.com/SparkAudio/Spark-TTS.git
cd Spark-TTS

第二步创建一个Conda 环境

这一步之前本地部署 DeepSeek 的时候已经安装过 Conda 直接过。(没有安装过的可以看这里www.anaconda.com/docs/gettin...

ini 复制代码
conda create -n sparktts -y python=3.12

然后激活环境

复制代码
conda activate sparktts

接着安装依赖

ini 复制代码
pip install -r requirements.txt
​
# 官方也考虑到了特殊情况,如果安装失败可以试试下面这种安装方式
# If you are in mainland China, you can set the mirror as follows:
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com
​

第三步模型下载

可以使用Python代码方式

javascript 复制代码
from huggingface_hub import snapshot_download
​
snapshot_download("SparkAudio/Spark-TTS-0.5B", local_dir="pretrained_models/Spark-TTS-0.5B")

不过我采用的是第二种git下载方式:

bash 复制代码
mkdir -p pretrained_models
​
# Make sure you have git-lfs installed (https://git-lfs.com)
git lfs install
​
git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B

(要是没有git lfs记得装一下。之后就是耐心等下载了)

第四步修改代码

修改webui.py文件,注释掉30行,用下面的代码替换掉。如图所示一行代码搞定。启动的时候从英伟达的N卡切到cpu模式。不过入参device也废了。。。

ini 复制代码
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

完成这一步后从webui这里启动模型已经没问题了,但是会吐出来一个http://0.0.0.0:7860地址。使用体验不好,我本地是打不开这个地址的。需要从http://localhost:7860进入。如果想在改改地址可以修改下面这里:

同一个文件webui.py, 修改229行即可。

启动

css 复制代码
python webui.py --device 0

这里特别说明一下我是因为想要快速体验,而且这种带UI操作界面的相对来说对外行也比较友好,所以只修改了webui.py文件。文档中还有另外两种使用方式,如果走其他方式启动,也得按上面的修改方式重新修改。

方式1,用这个sh脚本:

bash 复制代码
cd example
bash infer.sh

方式2,命令行中跑:

css 复制代码
python -m cli.inference \
    --text "text to synthesis." \
    --device 0 \
    --save_dir "path/to/save/audio" \
    --model_dir pretrained_models/Spark-TTS-0.5B \
    --prompt_text "transcript of the prompt audio" \
    --prompt_speech_path "path/to/prompt_audio"

体验

声音克隆

右上角这里可以直接录制声音,然后 text 部分输入要生成声音的文本,点 Generate 直接生成。

这里克隆了我自己和同事的声音,具体效果因为隐私问题就不放出来成品音频文件了。

说说效果,确实惊艳。克隆出来我自己的声音,我老妈是完全无法分辨。克隆同事的声音也是惟妙惟肖。

同时测试了一下它的克隆方言的效果,发现对它说方言好像不行。完全无法识别,没法有效提取声音的特征来进行声音克隆。此外录制声音时,办公室环境稍微嘈杂一点,它克隆出来的声音完全没有特征,听着很机械。

声音生成

内置了男声女声,pitch 音调高低。speed 速度的控制入口。

体验下来,个人觉得生成的中文效果比英文的要听着舒服、自然。

不过考虑到英文的语速一般比中文的要快,提高语速 speed=4 和 5 的时候效果会有所提升。

性能

Mac M4芯片机器。

css 复制代码
Once when I was six years old I saw a magnificent1 picture in a book, called True Stories from Nature, about the primeval forest.

英文生成这一句平均 14 秒左右。cpu 消耗如下:

中文生成一句诗词,平均 12 秒左右。cpu 消耗相似。

(掘金好像不能上传 mp3 文件, 这是微信公众号文章地址:mp.weixin.qq.com/s/UGvPKAWqp... 这里有 mp3 文件。感兴趣的大佬可以点过去听听)

最后------安全问题

被它的效果惊艳到后,就想到了安全问题上。现在AI 的发展真的是太迅猛了,这种效果完全可以用在非法途径。大家也看到了,像我老妈这样的老人完全无法分辨(也可能跟她年纪大听力有所下降有关)。面对这种情况,后期我们在安全方面是不是也需要加强相应的策略。例如:

  • 在大模型生成的音频文件中加入标签数据,或者什么"元数据",可以用大模型或者其他专用工具识别出来它是合成音,不是真人声音。
  • 是否能在手机端集成反向对抗的 AI 模型,在通话过程中动态识别。如果识别出情况有异,直接在通话界面提示出来。

以上是一个 AI 外行的本地部署体验。此外再吐槽一下,好多大模型都是直接适配的英伟达 GPU,Mac 上想体验都要稍微改改。后续研究研究,会使用苹果 mps 后再做测试。

相关推荐
movee27 分钟前
基于本地deepseek搭建一个无需联网也可使用的个人知识库
人工智能·后端
风华浪浪43 分钟前
提示词工程(Prompt Engineering)
人工智能·prompt
studyer_domi1 小时前
Matlab 多输入系统极点配置
人工智能·深度学习·matlab
非自律懒癌患者1 小时前
计算机视觉--图像数据分析基本操作
人工智能·计算机视觉·数据分析
机器之心1 小时前
提前免费!百度连发两款模型,我们实测:能听歌看电影,还会蛐蛐人
人工智能
lihuayong2 小时前
RAG的工作原理以及案例列举
人工智能·rag·文本向量化·检索增强生成·语义相似度
果冻人工智能2 小时前
Google 发布 Gemma 3 —— 你需要了解的内容
人工智能
-一杯为品-2 小时前
【动手学深度学习】#2线性神经网络
人工智能·深度学习·神经网络
SZ1701102312 小时前
语音识别 FireRedASR-AED模型主要特点
人工智能·语音识别