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 的草稿及默认转写提示;不含音频输入输出与权重加载
单位:时间为秒,加速比为倍
| 语音输入 | 标准耗时 | 推测耗时 | 加速比 |
|---|---|---|---|
| 5.9秒 | 0.241 | 0.090 | 2.67 |
| 24.9秒,英语、法语 | 0.830 | 0.230 | 3.61 |
| 109.8秒,拼接语音 | 3.168 | 2.879 | 1.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 的草稿及默认转写提示;不含音频输入输出与权重加载
单位:时间为秒,加速比为倍
| 语音输入 | 标准耗时 | 推测耗时 | 加速比 |
|---|---|---|---|
| 5.9秒 | 0.215 | 0.097 | 2.23 |
| 24.9秒,英语、法语 | 0.680 | 0.244 | 2.78 |
| 109.8秒,拼接语音 | 2.512 | 2.518 | 1.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 的实用价值在于扩展语音模型选择,同时让用户能按任务选择是否使用转写加速。
