【免费下载链接】speech-swift
AI speech toolkit for Apple Silicon — ASR, TTS, speech-to-speech, VAD, and diarization powered by MLX and CoreML
speech-swift是运行在 Apple Silicon 上的开源 AI 语音工具包,基于 MLX 与 CoreML 实现本地零样本语音克隆:只需一段几秒钟的参考音频,就能用任意人的声音合成本人从未说过的话。全程在 Mac 上离线完成,无需云端 API,不产生任何密钥费用,录音与文本永远不离开你的设备。本文带你用一条命令完成首次声音克隆,并横向对比 IndexTTS2、F5-TTS、CosyVoice 三大克隆引擎。
🎯 什么是零样本语音克隆?1分钟原理速览
零样本(Zero-shot)语音克隆指的是:不需要针对某个人的声音训练模型,只凭一段参考音频(通常 3~10 秒)就能捕捉其音色、语调,再让 TA "说出"你想输入的任何文字。
speech-swift 的做法是把各家的克隆模型移植为原生 Swift 运行时,通过一个统一的speech speak命令驱动:
- IndexTTS2:参考音频 → 语义编码 → 流匹配解码 → 波形,支持情绪/语速控制
- F5-TTS:参考音频 + 参考文本 → DiT 流匹配 + Vocos 声码器,轻量快
- CosyVoice3:CAM++ 说话人编码器提取音色向量,支持 9 种语言、情绪标签与多角色对话
| 维度 | 优势 |
|---|---|
| 🛡️ 隐私 | 纯本地推理,录音不上云 |
| ⚡ 速度 | 苹果芯片 MLX/CoreML 加速,多数引擎快于实时 |
| 🔌 统一入口 | speech speak一条命令切换所有克隆引擎 |
| 📦 按需加载 | 每个模型都是独立 Swift Package,只装你需要的 |
⚡ 快速安装:一条命令上手 speech-swift
一键安装步骤
speech-swift 已通过 Homebrew 发布,安装只需一行(要求 ARM 原生 Homebrew,即/opt/homebrew):
brew install speech最快首条克隆命令
准备好一段目标说话人的reference.wav,1 分钟内即可听到结果:
speech speak "你好,这是我用 speech-swift 克隆的声音。" \ --engine indextts2 \ --voice-sample reference.wav \ -o clone.wav首次运行会自动下载模型包并缓存,之后离线可用。--voice-sample就是声音克隆的核心入参——参考音频。
🆚 三大零样本语音克隆引擎对比
| 对比项 | IndexTTS2 | F5-TTS | CosyVoice3 |
|---|---|---|---|
| 规模 | 1.5B 级(fp16) | 336M(fp16) | 0.5B(bf16 约 2.1 GB / 8bit 约 1.4 GB) |
| 输出采样率 | 22.05 kHz | 24 kHz | 24 kHz |
| 语言 | 中 / 英(中英混输) | 中 / 英(可混排) | 中、英、日、韩、德、西、法、意、俄(9 种) |
| 参考文本 | 不需要 | 必需 | 不需要(提供后保真度更高) |
| 情绪控制 | ✅ 情绪预设 + 8 维情绪向量 | ❌ | ✅ 8 种内联(emotion)标签 |
| 语速控制 | ✅ 0.5~1.5 倍 | ✅--f5-speed | ✅ |
| 多角色对话 | ❌ | ❌ | ✅ 说话人标签 + 说话人映射 |
| 流式输出 | ❌ | ❌ | ✅ 约 150 ms 首块延迟 |
| 典型场景 | 高保真单人克隆 | 轻量快速克隆 | 多语言/有声书/对话 |
📌 三者的模型规格详见官方文档:docs/models/indextts2.md、docs/models/f5-tts.md、docs/models/cosyvoice-tts.md。
1️⃣ IndexTTS2:支持情绪控制的高保真克隆
IndexTTS2 由 w2v-BERT 语义特征、CAMPPlus 风格向量和 GPT 语义生成组成,克隆的"音色相似度"是三者中取向最激进的。亮点是独立的情绪参考:你可以让声音长得像 A、语气像 B。
speech speak "欢迎来到发布会!" \ --engine indextts2 \ --voice-sample reference.wav \ --indextts2-emotion excited \ --indextts2-speaking-rate 1.35 \ -o clone.wav- 情绪预设:
eager、happy、angry、sad、calm等 10 种 --indextts2-emotion-audio可指定单独的情绪参考音频(默认复用--voice-sample)- 提示:情绪权重开太高会牺牲音色相似度,追求"像本人"时保持默认即可
更多参数(S2Mel 步数、停顿上限等)见 docs/inference/indextts2.md,核心实现位于 Sources/IndexTTS2TTS/IndexTTS2TTSModel.swift。
2️⃣ F5-TTS:需要"参考文本"的轻量克隆方案
F5-TTS 基于 DiT 流匹配 + Vocos 声码器,模型只有 336M,是三者中最轻量的。它的独特之处是要求提供参考音频的逐字文本(--f5-reference-text)——文本与声音对齐后,模型能更精准地学习说话风格:
speech speak "这是一段本地运行的 F5-TTS 语音克隆测试。" \ --engine f5 \ --voice-sample reference.wav \ --f5-reference-text "参考录音里说的那句话。" \ -o f5.wav--f5-steps 32:默认 16 步足够,追求最高保真可翻倍--f5-seed:固定随机种子,方便复现同一段合成- 中文走拼音词表前端,中英混排在单次请求中即可
参数说明见 docs/inference/f5-tts.md,运行时源码见 Sources/F5TTS/F5TTSModel.swift。
3️⃣ CosyVoice3:9 语言 + 情绪标签 + 多角色对话
CosyVoice 是三者中功能面最广的:三阶段流水线(LLM 语音 token → DiT 流匹配 → HiFi-GAN 声码器),克隆音色、调节情绪、切换说话人全部内联完成。
基础克隆:
speech speak "Good morning, everyone!" \ --engine cosyvoice \ --voice-sample reference.wav \ -o clone.wav内联情绪标签(直接在文本里写):
speech speak "(excited) 我们赢了比赛!(calm) 谢谢大家支持。" \ --engine cosyvoice --voice-sample reference.wav -o emo.wav多角色对话——一个命令生成两人对话,各自用自己的参考音频:
speech speak "[S1] 你好呀。[S2] 你好,最近怎么样?" \ --engine cosyvoice \ --speakers s1=alice.wav,s2=bob.wav \ -o dialogue.wav内置 8 种情绪标签:happy、sad、angry、whispers、laughs、calm、surprised、serious;也可以写自由指令,如(Speak like a pirate)。量化档位用--cosyvoice-variant 8bit切换(bf16/8bit/8bit-full)。
💡 让克隆更像本尊的 5 个实用技巧
- 参考音频宁短勿长、宁净勿响:3~10 秒安静环境下的清晰人声效果最好;F5 的参考文本务必逐字准确。
- 先降噪再克隆:参考音频有噪声/混响时,加
--clean-reference,会用 Sidon 先做降噪+去混响再提取音色,保留说话人身份。 - 音量偏低自动补偿:F5 会对过轻的参考做 RMS 归一化(
--f5-target-rms,默认 0.1),无需手动放大。 - 长文本分段更稳:CosyVoice 会自动按句切分、拼接并加边缘淡入淡出;长段合成时加
--seed可让分段间语气/音色保持一致。 - 语速微调救场:克隆结果偏慢/偏快时,IndexTTS2 用
--indextts2-speaking-rate、F5 用--f5-speed,0.5~1.5 倍连续可调。
所有参数的权威出处是 CLI 命令定义文件 Sources/AudioCLILib/SpeakCommand.swift,其中每个选项的帮助文本都有详细说明。
❓ 常见问题 FAQ
Q1:克隆一段声音需要多长的参考音频?几秒就够。一般 3~10 秒清晰人声即可稳定捕捉音色;F5-TTS 额外要求这段音频的逐字文本。
Q2:我的 Mac 跑得动吗?模型有多大?F5-TTS 最轻(336M);CosyVoice3 选 8bit 档约 1.4 GB;IndexTTS2 为 1.5B 级 fp16 包,体积最大。全部走 MLX GPU 加速,M 系列芯片均可运行。
Q3:支持哪些语言?IndexTTS2 与 F5-TTS 面向中/英(可混排);CosyVoice3 覆盖中、英、日、韩、德、西、法、意、俄共 9 种。
Q4:商用要注意什么?F5-TTS 上游为cc-by-nc-4.0(非商用);IndexTTS2 等部分模型带研究/非商用许可属性。商用前请核对各模型上游 LICENSE,本仓库根目录也提供了 LICENSE 供参考。
Q5:能流式/实时输出吗?目前 CosyVoice 支持流式(约 150 ms 首块延迟),IndexTTS2 与 F5 暂为批式合成,CLI 传入--stream会明确报错提示。
📂 项目文件导航
- 三大引擎架构文档:docs/models/indextts2.md · docs/models/f5-tts.md · docs/models/cosyvoice-tts.md
- 推理与命令参考:docs/inference/indextts2.md · docs/inference/f5-tts.md
- 引擎实现:Sources/IndexTTS2TTS/ · Sources/F5TTS/ · Sources/CosyVoiceTTS/(含 CAM++ 说话人编码与 HiFi-GAN 声码器)
- CLI 入口:Sources/AudioCLILib/SpeakCommand.swift
- 在 Swift 应用里集成:在
Package.swift添加对应 product(如IndexTTS2TTS、F5TTS、CosyVoiceTTS),即可调用generate(text:referenceAudio:...)合成音频
小结:用 speech-swift 克隆声音只需三步——brew install speech、准备一段参考音频、执行speech speak --voice-sample。追求情绪表现选IndexTTS2,追求轻快省资源选F5-TTS,要做多语言与多角色对话选CosyVoice。全程本地、免费、隐私安全。🎙️
【免费下载链接】speech-swift
AI speech toolkit for Apple Silicon — ASR, TTS, speech-to-speech, VAD, and diarization powered by MLX and CoreML
相关推荐
3秒克隆任意人声:Spark-TTS语音复刻技术完全指南
3秒克隆任意人声:Spark TTS语音复刻技术完全指南 在语音合成技术日新月异的今天,传统的TTS系统需要大量训练数据才能生成个性化语音,而Spark TTS
人工智能语音音频大模型模型推理服务F5-TTS语音克隆终极指南:如何让AI完美复刻你的声音?
F5 TTS语音克隆终极指南:如何让AI完美复刻你的声音? F5 TTS 是一款基于Flow Matching技术的先进语音合成系统,能够生成流畅且忠实于原始声
语音人工智能音频预训练F5-TTS:如何用5分钟实现高质量语音克隆?
F5 TTS:如何用5分钟实现高质量语音克隆? F5 TTS是一个基于流匹配技术的先进语音合成系统,能够生成流畅自然、忠实于原声的语音。这款工具让普通用户也能轻
语音人工智能音频预训练
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考