开源语音 AI:3 秒克隆声音,支持 9 种语言 — Voxtral TTS

在发出我的 OpenClaw 可以开口说话|NoizAI 技能安装使用教程后,有朋友问:Noiz 有本地吗?

我说:NoizAI是个在线的。本地转语音需要安装文本转语音的模型。想看的话,我可以找找。

今天就来看看本地的模型:Mistral 3 月 26 日发布的 Voxtral TTS,一个文本转语音模型,模型权重开放、可以本地自托管


Voxtral TTS 是什么

简单说:一个 41 亿参数的文本转语音模型。

支持九种语言:英语、法语、德语、西班牙语、荷兰语、葡萄牙语、意大利语、印地语和阿拉伯语。

有两种使用方式:

  1. 1. 直接用 20 个内置预设语音中的一个
  2. 2. 上传一段参考音频,克隆特定说话者的声音

Mistral 对这个模型的核心定位是:小体积 + 前沿级质量

Hugging Face 上的默认 BF16 权重约 8 GB。

本地运行的最低门槛是 16 GB 显存的 GPU。

研究论文里提到量化版本可以把权重压到约 3 GB,但那不是当前的默认发布版本。

官方说这个量化后的版本可以在智能手机上运行。


架构是怎么设计的

Voxtral TTS 是一个基于 Ministral 3B 的 Transformer 架构自回归流匹配(Flow-matching)模型,分三个组件:

组件参数量作用
Transformer 解码器骨干34 亿从文本和语音输入预测语义标记
流匹配声学 Transformer3.9 亿把语义标记转换为音频表示
神经音频编解码器3 亿Mistral 从零搭建,12.5 Hz,帧长 80ms

三个组件加起来约 41 亿参数。

编解码器是效率的关键:在一个紧密压缩的潜在空间里运作,让整个模型在生成高质量音频的同时,BF16 权重只需约 8 GB。

这三阶段流水线也是语音克隆得以实现的底层逻辑:

编解码器在潜在空间里捕捉说话者特征,骨干网络和声学 Transformer 再利用这些特征在新文本上重现那个声音


语音克隆

Voxtral TTS 支持零样本语音克隆:只要提供一段参考音频,模型就能生成保留对方口音、语调和节奏的语音。

推荐的参考音频长度是 5 到 25 秒,最低接受 3 秒。

实测结论是:3 秒够用,但 8 秒以上才能明显捕捉到说话者的特征

3 秒的片段,缺少让声音有辨识度的那些特定语调,听起来像”可能是任何人”。

换成 8 秒的片段,差别就很明显:口音、节奏,以及问句末尾的轻微上扬,这些都能被捕捉到。

8 到 15 秒,是投入与效果之间的好平衡点。

而且支持跨语言克隆。

给一段法语语音参考,然后输入德语文本,模型倾向于生成听起来像那位法语说话者的德语语音,保留了大量口音和声音特征。

这不是训练的功能,但实际挺好用,尤其是语音翻译场景里需要保留原说话者声音的时候。

只是要提醒你注意: 开放权重的本地版本,只能用那 20 个预设语音,不能克隆。

如果要克隆自定义声音,必须调 Mistral 的云 API。


“语音即指令”:不用写情感标签

很多 TTS 系统控制情感表达的方式是打标签:比如 ElevenLabs 用显式情感标签告诉模型”这里要读得兴奋一点”。

Voxtral TTS 的方式不同。

它有一个叫做”语音即指令“(Voice-as-an-instruction)的特性:不依赖标签,而是直接从你提供的语音参考推断语调、节奏和情感表达。

给它一段说话者兴奋讲述的参考音频,生成的语音自然就倾向于那种风格。

语气藏在参考音频里,不需要你额外标注。


基准测试

Mistral 用的是人工偏好评估,不是常见的平均意见得分(MOS)指标。

理由是 MOS 无法可靠捕捉跨语言和跨文化的自然度。

测试由九种支持语言的母语标注员进行盲听对比。

主要结论:

对比 ElevenLabs Flash v2.5:

  • • 使用内置旗舰语音时:58.3% 的对比中,人工标注员偏好 Voxtral TTS
  • • 零样本语音克隆时:偏好比例上升到 68.4%
  • • 差距最大的语言:印地语(约 80%)、西班牙语(约 88%)
  • • 薄弱环节:荷兰语(49.4%),ElevenLabs 在这里占优

对比 ElevenLabs v3 和 Gemini 2.5 Flash TTS(情感引导测试):

  • • 对比 ElevenLabs v3:显式情感引导大致持平,隐式引导 Voxtral 略占优势
  • • 对比 Gemini 2.5 Flash TTS:Gemini 以约 65% 胜出

延迟数据:

格式首音频时间
PCM~0.8 秒(H200 单卡 70ms)
MP3~1.5–2 秒

这些基准数据全部来自 Mistral 自己的内部评估,数据仅供参考。


上手三步:从零跑起来

第一步:安装 SDK 和配置 API Key

代码语言:javascript

AI代码解释

pip install mistralai
export MISTRAL_API_KEY="your-api-key-here"

第二步:生成基础语音(预设语音)

代码语言:javascript

AI代码解释

import base64
import os
from pathlib import Path
from mistralai.client import Mistral

client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))

response = client.audio.speech.complete(
    model="voxtral-mini-tts-2603",
    input="你好,这是 Voxtral TTS 的基础语音生成测试。",
    voice_id="your-voice-id",
    response_format="mp3",
)

Path("output.mp3").write_bytes(base64.b64decode(response.audio_data))
print("已保存到 output.mp3")

注意:方法是 .complete(),不是 OpenAI 那边的 .create()。响应的音频是 base64 编码,写入前需要解码。

第三步:克隆自定义语音(需 API)

代码语言:javascript

AI代码解释

import base64
import os
from pathlib import Path
from mistralai.client import Mistral

client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))

# 读取参考音频并 base64 编码
sample_audio_b64 = base64.b64encode(
    Path("reference_voice.mp3").read_bytes()
).decode()

# 创建可复用的语音配置文件
voice = client.audio.voices.create(
    name="my-custom-voice",
    sample_audio=sample_audio_b64,
    sample_filename="reference_voice.mp3",
    languages=["zh"],
    gender="male",
)

print(f"语音 ID:{voice.id}")

# 用克隆的声音生成语音
response = client.audio.speech.complete(
    model="voxtral-mini-tts-2603",
    input="这句话用的是从几秒参考音频克隆的声音生成的。",
    voice_id=voice.id,
    response_format="mp3",
)

Path("cloned_output.mp3").write_bytes(base64.b64decode(response.audio_data))

Voxtral 语音矩阵:听 → 说 完整链路

前面介绍的是 TTS(文本转语音)这一个方向。

实际上,Mistral 在 2026 年 3 月完成了整套语音 AI 基础设施的布局:

组件模型定位
STT(语音转文字)Voxtral Mini 3B / Small 24B实时转写,支持30分钟长音频,多语言
Realtime 实时流Voxtral Mini 4B Realtime流式音频,超低延迟,vLLM Realtime API
TTS(文字转语音)Voxtral TTS 4B9语言,3秒声音克隆,70ms 低延迟
企业定制平台Mistral Forge私有化部署、微调、全链路 Agent 构建

这意味着从「听」到「说」的完整语音 Agent 链路已经全部开源可用。

端到端语音 Agent 代码示例

代码语言:javascript

AI代码解释

from mistralai.client import Mistral
import os
import base64

client = Mistral(api_key=os.getenv("MISTRAL_API_KEY"))

def voice_agent_pipeline(audio_file_path: str) -> bytes:
    """完整的语音 Agent:听 → 理解 → 说"""

    # Step 1: STT - 语音转文字
    with open(audio_file_path, "rb") as f:
        transcript = client.audio.transcriptions.create(
            model="voxtral-transcribe",
            file=(audio_file_path, f, "audio/mpeg"),
        )
    user_text = transcript.text
    print(f"用户说: {user_text}")

    # Step 2: LLM - 理解 + 生成回复
    response = client.chat.complete(
        model="mistral-large-latest",
        messages=[{"role": "user", "content": user_text}]
    )
    reply_text = response.choices[0].message.content
    print(f"Agent 回复: {reply_text}")

    # Step 3: TTS - 文字转语音
    tts_response = client.audio.speech.create(
        model="voxtral-tts",
        input=reply_text,
        voice="en-US-Neural2-D",
    )

    return base64.b64decode(tts_response.audio)

# 运行
audio_output = voice_agent_pipeline("user_input.mp3")
with open("reply.mp3", "wb") as f:
    f.write(audio_output)

整个 pipeline 就是三步:语音 → 文字 → LLM 推理 → 文字 → 语音,配合 Mistral Forge 定制平台,企业可以构建从语音输入到语音输出的全流程离线语音 Agent。

完整开源语音链路的意义

完整开源语音链路是人形机器人、客服 Agent、车载助手等具身和语音应用的核心基础设施。

Mistral 的开源路线大幅降低了语音 Agent 的部署门槛:过去需要调用多个闭源服务(STT + TTS),现在同一套 SDK,全部本地可跑。


格式选哪个:PCM vs MP3

API 支持五种输出格式:MP3、WAV、PCM(原始 float32)、FLAC 和 Opus。

怎么选?

  • 保存文件 / 常规播放:用 MP3,更通用,延迟 1.5–2 秒可以接受
  • 语音 Agent 管道 / 追求低延迟:用 PCM,0.6–0.9 秒,但是原始未压缩格式,需要应用层自己处理转换

模型单次可以生成最多两分钟的音频。

更长的内容,API 会用 Mistral 称为”智能纠错“的技术自动处理:把文本分块合成,然后无缝拼接,不会有明显断点。


本地部署须知

1. 硬件门槛

默认 BF16 权重约 8 GB,推理需要至少 16 GB 显存的 GPU。

量化到约 3 GB 可以降低门槛,但当前 Hugging Face 发布的不是量化版本,需要自己处理。

2. 许可限制

开放权重使用的是 CC BY-NC 4.0 许可,仅限非商业用途

商业场景需要走云 API,或者联系 Mistral 申请企业授权。

对比一下他们的语音转文本模型:那个用的是 Apache 2.0,商用没有限制,两者差距很大。

3. 自托管当前需要 vLLM-Omni

这是个工程依赖,部署前要确认你的环境支持。


适合什么场景

整体来看,Voxtral TTS 合适以下场景:

  • 语音 Agent 管道:低延迟 PCM 输出,接入流式应用有优势
  • 多语言旁白工具:九种语言覆盖,跨语言克隆能力实用
  • 数据不出本地的合规场景:开放权重 + 自托管,数据完全在你自己的基础设施上(注意非商业限制)
  • 需要个性化声音的应用:语音克隆 + 语音即指令,不用手动写情感标签

应用场景案例

场景技术方案部署方式适合情况
智能客服 AgentVoxtral STT + LLM + Voxtral TTS云 API / SageMaker需要多轮对话、快速响应
人形机器人语音交互voxtral.c(C 语言推理)+ 实时流边缘设备本地运行数据不上云、实时性要求高
车载语音助手Voxtral Realtime 4B + vLLM车载 GPU / 高端手机离线可用、多语言支持
多语言电话客服Voxtral 9语言支持 + 声音克隆私有云 + Forge企业品牌声音一致性
会议实时转写+播报Transcribe 2(30min 长音频)本地 vLLM 服务会议记录、字幕生成
企业品牌声音3秒声音克隆 + TTSForge 定制平台品牌 IP 语音化


常见问题

本地运行一定要 GPU 吗?

云 API 不需要。本地自托管默认版本需要至少 16 GB 显存。。

不支持的语言怎么处理?

模型不会报错,但输出质量会下降,并且没有警告提示。

发请求前先确认语言是否在支持列表里。

开放权重可以商用吗?

不行,CC BY-NC 4.0 仅限非商业用途。

商业场景用云 API 或联系企业授权。


如果语音 AI 方案可以本地部署,你希望用来做什么?