MLX Audio 0.6.2 增加了用于语音生成、识别和语音对话的模型选择。在 Apple 芯片上开发语音功能的开发者可以通过同一个库加载新模型,并为将语音转换为文字的转写任务启用可选加速功能。

1. 新增三类模型,涵盖合成与多语言识别

Ming 3.0 是涵盖语音识别、合成和对话的一组模型。识别模型支持英语和中文。对话模型结合了声音理解与语音生成模块,仅在请求需要语音输出时加载语音生成模块。

IBM Granite Speech 5.0 2B 提供语音识别与翻译功能。转写支持英语、法语、德语、西班牙语、葡萄牙语和日语,还可将英语语音翻译成意大利语和中文。它也支持标点符号、语言提示及最多 2,000 个关键词的指定。

Fermion Research 的 Phonon 2.5 可自动检测并识别 25 种欧洲语言。英语专用变体及此前的 Phonon 2 也可通过同一 API 加载,无需单独的 Fermion 运行环境。

2. Granite 通过审核草稿加速转写

Granite 的推测解码由语言模型分批审核语音处理模块生成的文字草稿,并采纳匹配的前缀。它不是逐个生成文本片段,而是同时核验多个片段。该功能默认关闭,运行条件为温度 0、不使用重复惩罚,以及具备保存模型状态的检查点所附带的辅助文件。

文档中的示例在按原语言转写时开启推测解码,并将草稿长度设为 16 个 token。

mlx_audio.stt.generate \
  --model ibm-granite/granite-speech-5.0-2b \
  --audio audio.wav --output-path transcript \
  --gen-kwargs '{"language": null, "speculative": true, "num_draft_tokens": 16}'

以下选取了项目新增文档中本地测量的代表性输入。与示例不同,草稿长度为 32 个 token,每次调用均涵盖从提取语音分析特征到转换为文本的过程。输入来自公开英语语音测试数据、将其拼接而成的录音及 IBM 的多语言样本。

表:Granite Speech 5.0 2B 使用 16 位浮点格式 BF16 的转写时间

条件:Apple M5 Max、128 GB 统一内存、MLX 0.32.4、BF16;预热后调用 5 次取中位数;同步默认与解码 GPU 流以确保任务完成;推测模式使用 32 个 token 的草稿及默认转写提示;不含音频输入输出与权重加载

单位:时间为秒,加速比为倍

BF16 下不同输入的转写耗时5.9秒: 标准耗时 0.241, 推测耗时 0.090; 24.9秒,英语、法语: 标准耗时 0.830, 推测耗时 0.230; 109.8秒,拼接语音: 标准耗时 3.168, 推测耗时 2.879标准耗时推测耗时5.9秒0.2410.09024.9秒,英语、法语0.8300.230109.8秒,拼接语音3.1682.879
BF16 下不同输入的转写耗时
Granite 通过审核草稿加速转写
语音输入标准耗时推测耗时加速比
5.9秒0.2410.0902.67
24.9秒,英语、法语0.8300.2303.61
109.8秒,拼接语音3.1682.8791.10

按文档数据,24.9 秒输入的加速比为 3.61 倍,109.8 秒输入为 1.10 倍,效果因输入而异。

3. 8 位下的收益也因输入而异

同一文档还测量了 8 位检查点。以下是在相同输入与流程下,标准运行和推测运行的对比结果。

表:Granite Speech 5.0 2B 的 8 位转写时间

条件:Apple M5 Max、128 GB 统一内存、MLX 0.32.4、8 位;预热后调用 5 次取中位数;同步默认与解码 GPU 流;推测模式使用 32 个 token 的草稿及默认转写提示;不含音频输入输出与权重加载

单位:时间为秒,加速比为倍

8 位下不同输入的转写耗时5.9秒: 标准耗时 0.215, 推测耗时 0.097; 24.9秒,英语、法语: 标准耗时 0.680, 推测耗时 0.244; 109.8秒,拼接语音: 标准耗时 2.512, 推测耗时 2.518标准耗时推测耗时5.9秒0.2150.09724.9秒,英语、法语0.6800.244109.8秒,拼接语音2.5122.518
8 位下不同输入的转写耗时
8 位下的收益也因输入而异
语音输入标准耗时推测耗时加速比
5.9秒0.2150.0972.23
24.9秒,英语、法语0.6800.2442.78
109.8秒,拼接语音2.5122.5181.00

8 位结果的转写文本均与标准方式一致。BF16 在 62.5 秒输入中有一处专有名词写法发生变化,但统计与参考转写不同单词的词错误数,在两种方式和两种精度下均为 33/522(6.32%)。文档使用这组包含重叠输入的数据检查变更前后的行为。

收益与成本取决于任务。草稿匹配度高的转写可通过批量审核缩短时间,但据文档所述,将同一段 24.9 秒样本译为法语时,推测方式的耗时反而增加约 14~15%。这是因为翻译时草稿使用原始语种,可能与目标语句不匹配。

4. Ming 分块输出,Phonon 复用缓存

独立的 Ming 合成路径 Ming-3.0-tts-0.5B 系列已修改为:开启流式处理后,每个句子片段的语音一旦生成完毕便立即返回,不再等待整段完成。

Phonon 2.5 首次加载时会下载压缩文件,核验用于检查文件损坏的校验和,并将 MLX 检查点解压到缓存中。首次运行承担下载和解压成本后,便可复用用于暂存可重复利用数据的缓存。

5. 默认安装也包含运行对话模型所需的软件包

此版本要求安装 transformers[chat-template],并将 jinja2 的最低版本设为 3.1.6。通过在默认安装中加入将对话内容转换为模型输入格式的软件包,解决了运行 Ming 语音对话时缺少依赖的问题。

MLX Audio 0.6.2 的实用价值在于扩展语音模型选择,同时让用户能按任务选择是否使用转写加速。