Mac 本地跑语音 AI:MLX-Audio 一站式 TTS、STT 实战指南

发布时间:2026/9/20 8:10:09

Mac 本地跑语音 AI:MLX-Audio 一站式 TTS、STT 实战指南 Mac 本地跑语音 AIMLX-Audio 一站式 TTS、STT 实战指南【免费下载链接】mlx-audioA text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apples MLX framework, providing efficient speech analysis on Apple Silicon.项目地址: https://gitcode.com/GitHub_Trending/ml/mlx-audio如果你的 Mac 上同时堆着会议录音转文字和批量生成有声书两个需求又不想把音频传到云端MLX-Audio 是目前比较直接的答案它构建在 Apple MLX 框架Apple 自研的机器学习运行时负责把张量计算调度到 Apple Silicon 的 GPU 和统一内存上之上一行命令完成文本转语音TTS和语音转文本STT并附带语音增强、声源分离与音乐生成能力当前版本 0.5.4要求 Python 3.10 以上和 M1 至 M4 芯片。五分钟跑通第一个例子安装只需一条命令按功能分组装依赖可以只拿需要的部分# 只装 TTS 相关依赖stt、sts、all 同理 pip install mlx-audio[tts] # 用 0.6B 的 8 位量化模型生成第一句语音并直接播放 mlx_audio.tts.generate \ --model mlx-community/Qwen3-TTS-12Hz-0.6B-CustomVoice-8bit \ --text Hello, world! --voice Vivian --play--voice选预设说话人--play生成完立即播放加--stream可以边生成边出声。模型权重从 Hugging Face 拉取并缓存到本地第二次运行不再下载。Python 侧的调用模式完全一致load_model负责按模型名自动识别架构并加载权重from mlx_audio.tts.utils import load_model model load_model(mlx-community/Qwen3-TTS-12Hz-0.6B-CustomVoice-8bit) # generate 是一个生成器每段文本 yield 一个结果对象 for result in model.generate_custom_voice( textWelcome to MLX-Audio!, speakerRyan, languageEnglish, ): print(result.audio.shape[0], samples) # result.audio 是 mx.array 波形结果对象里还带sample_rate、audio_duration、real_time_factor相对实时倍速和peak_memory_usage峰值内存GB等字段方便你量化评估每段生成实际花了多少资源。项目定位一张表看清能干什么MLX-Audio 的定位是Apple Silicon 上的本地音频推理工具箱不训练模型专注把已有的开源语音模型转换、量化后跑在本机。适合三类人——要在 Mac 上做离线语音应用的开发者、需要批量生成/转写音频的创作者、想评估语音模型但没 GPU 服务器的研究者。核心能力一览模块能力代表模型与规模关键数字TTS预置声音、语音克隆、语音设计Kokoro82M、Qwen3-TTS0.6B/1.7B、Higgs Audio v34B、OmniVoice、MOSS-TTS-Nano100M、Ming Omni TTS16.8B-A3BOmniVoice 覆盖 646 语言Higgs v3 支持 100 种语言Kokoro 提供 54 个语音预设STT离线/流式转写、词级对齐、说话人分离Whisper99 语言、Qwen3-ASR、Voxtral Realtime4B、Parakeet v325 种欧洲语言、MMS1000 语言、VibeVoice-ASR最高 9BVibeVoice-ASR 长音频支持到 60 分钟Voxtral Realtime 有 4bit 与 fp16 两档STS语音增强、声源分离、语音对话MossFormer2 SE、DeepFilterNet 1/2/3、SAM-Audio、NemotronLabs VoiceChat11B-4bitMossFormer2 输出 48kHzSortformer 声纹分离支持最多 4 人VAD端点检测、说话人日志Silero VAD、Sortformer v1/v2.1流式语言无关音乐带歌词歌曲生成MiniMax Music 344.1kHz 立体声输出核心机制统一加载流水线 生成器接口理解架构只需看两点。第一目录结构按模块 × 模型组织每个模型一个独立子包互不干扰mlx_audio/ ├── tts/ # 每个模型一个目录qwen3_tts/、kokoro/、omnivoice/… ├── stt/ # whisper/、parakeet/、voxtral_realtime/… ├── sts/ # 增强、分离、语音对话 ├── vad/ # Silero、Sortformer ├── lm/ # 内置的 LM 推理代码从 mlx-lm 移植 ├── audio_io.py # 读写音频miniaudio ffmpeg ├── convert.py # HF 权重转换与量化 └── server.py # FastAPI 服务OpenAI 兼容第二所有模型共用一条加载流水线load(模型名)→ 下载或解析本地路径 → 读config.json判断model_type→ 查映射表动态导入对应模型类 → 实例化mlx.nn.Module并载入.safetensors。共享逻辑在 mlx_audio/utils.py各模块的utils.py只是薄封装。TTS 的generate()统一设计为生成器非流式时每段文本产出一次GenerationResult加streamTrue后按小块持续 yield最后一个块带is_final_chunkTrue标记。详细的模块说明见 架构设计文档。能力聚焦语音克隆、流式转写与量化零样本语音克隆场景手头只有一段 10 秒的参考录音想让模型用这个人的声音读新文本。做法是把参考音频和它的逐字文本一起传给generate()模型据此拟合音色。OmniVoice 是最直接的例子它用双向 Qwen3 骨干加迭代式掩码生成音色克隆对参考文本的准确性敏感from mlx_audio.tts.utils import load_model model load_model(mlx-community/OmniVoice-bf16) for result in model.generate( textThis sentence uses the reference speaker., languageenglish, ref_audioreference.wav, # 参考音频 ref_text参考音频的逐字文本, # 必须与参考音频内容一致 duration_s5.0, # 控制输出时长 ): audio result.audioref_text与参考音频对不上时克隆效果会明显下降这是实践中最常见的坑duration_s和num_steps分别控制时长与扩散步数。CLI 同样支持--ref_audio配合--play可以立刻试听。低延迟流式转写场景直播字幕或实时会议记录文字要边说边出。Voxtral Realtime4B和 Parakeet 都实现了streamTrue转写结果按增量返回不需要等整段音频处理完from mlx_audio.stt.utils import load # 4bit 档推理更快fp16 档精度更高 model load(mlx-community/Voxtral-Mini-4B-Realtime-2602-4bit) for chunk in model.generate(audio.wav, streamTrue): print(chunk, end, flushTrue) # transcription_delay_ms 越小延迟越低精度略有损失 result model.generate(audio.wav, transcription_delay_ms240)对麦克风实时输入项目另有统一的StreamingSession协议feed喂 PCM、step取增量文本API 服务器的 WebSocket 实时端点就是基于它实现的协议定义见 流式 STT 指南。量化用一半内存装下更大的模型自建模型或压缩现成模型都走mlx_audio.convert。以 Kokoro-82M 为例4 位量化后体积约为 fp16 的 1/4python -m mlx_audio.convert \ --hf-path prince-canuma/Kokoro-82M \ --mlx-path ./Kokoro-82M-4bit \ --quantize --q-bits 4 --q-mode affine--q-mode支持affine默认、mxfp4/mxfp8Microscaling 浮点格式、nvfp4四档--q-group-size调整分组大小。多数模型在 mlx-community 下已有 4bit/6bit/8bit 预量化版本直接load即可无需自己转换。完整参数与混合精度配方如mixed_4_6见 量化指南。性能与取舍不同内存预算下的选型仓库给出的量化体积对照是硬数据3 位约 1/5、4 位约 1/4、6 位约 2.5 倍、8 位约 2 倍相对 fp16。文档同时给了明确的经验结论TTS 模型在 3 位下容易出可闻伪影4 位是质量与体积的平衡点STT 模型普遍更能耐受 4 位1B 以上的大模型比小模型更能扛低比特。按内存预算给三条建议预算选型说明内存紧张约 8GBKokoro 82M / MOSS-TTS-Nano 100M 的 4bit或 Phonon-1 Micro285MB做 STT单条命令即可跑通中等16GBQwen3-TTS 1.7B 或 Voxtral 4B 的 6bit/4bitParakeet 0.6B 做 STT语言覆盖和音质兼顾充足32GBHiggs Audio v3 4B、VibeVoice-ASR 9B 的 bf16/8bit7B 级模型 bfloat16 约需 17GB追求上限质量需要说明的是仓库本身不发布端到端基准分数推理速度依赖具体芯片和模型最可靠的方式是看每次生成返回的real_time_factor和peak_memory_usage字段用自己的机器实测。接入指南CLI、Python 与 API 三种姿势CLI 适合脚本与一次性任务六个入口命令分别对应转换、STT、TTS、音乐、服务与 STS在 pyproject.toml 的[project.scripts]中注册。Python API 适合嵌入工程load/load_model拿到模型后直接调generate()。要集成进现有后端最省事的是 OpenAI 兼容 APImlx_audio.server --host 0.0.0.0 --port 8000 curl -X POST http://localhost:8000/v1/audio/speech \ -H Content-Type: application/json \ -d {model: mlx-community/Kokoro-82M-bf16, input: Hello!, voice: af_heart} \ --output speech.wav服务端点包括/v1/audio/speechTTS、/v1/audio/transcriptionsSTT、/v1/audio/separations分离、/v1/models的加载/卸载管理以及 WebSocket 实时转写。--tts-max-batch-size默认 8控制兼容请求的连续批处理上限完整参数表见 Web UI 与 API 服务器指南。常见报错要点输出 MP3/FLAC/OGG/Opus 失败几乎都是没装 ffmpegWAV 不需要brew install ffmpeg即可解决Kokoro 报文本处理错误通常是缺misaki包日语/中文需misaki[ja]/misaki[zh]模型加载失败先确认网络能否访问 Hugging Face或改用本地路径加载。常见问题量化后音质变差怎么办官方建议从 4 位或 6 位起步听到伪影再升 8 位TTS 要凭耳朵判断STT 可看词错率二者不能互相替代。流式转写延迟太高调低transcription_delay_ms代价是精度或选 4bit 权重档实时麦克风场景走服务器 WebSocket 端点而非离线文件转写。能离线跑吗能。模型下载并缓存到本地后不再依赖网络音频读写走 miniaudio除非 WAV 格式外只依赖本地 ffmpeg。说话人分离和转写能一起用吗可以组合Silero VAD 做端点检测切段Sortformer 做说话人日志STT 模型负责转写三段都是独立模块。收尾MLX-Audio 把 40 多个语音模型收敛到一套加载—生成—保存接口下让你在一台 Mac 上完成从录音转写、语音克隆到歌曲生成的完整链路。它不追求云端服务的吞吐换取的是数据不出本机与零 API 费用。适合现在上手的是正在 Mac 上构建离线语音功能、或需要批量处理音频且在意隐私的开发者。学习资源快速上手Python、架构设计文档、量化指南、模型文档总览。【免费下载链接】mlx-audioA text-to-speech (TTS), speech-to-text (STT) and speech-to-speech (STS) library built on Apples MLX framework, providing efficient speech analysis on Apple Silicon.项目地址: https://gitcode.com/GitHub_Trending/ml/mlx-audio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/20 8:10:09

如何将 PowerShell 7 设为 Windows Terminal 默认启动项

1. 为什么折腾默认项:PowerShell 5.1 和 7 其实不是同一个东西先说说我为什么专门写这篇。前几天帮一个同事处理终端环境,他跟我说“我已经装了 PowerShell 7,为什么 Windows Terminal 打开还是老版的?”,我过去一看&a…

2026/9/20 8:05:08

RAG系统效果评估实战:用RAGAS量化忠实性与答案相关性

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 12:55:40

MMPose 133关键点全身姿态估计三步快速跑通

MMPose 133关键点全身姿态估计三步快速跑通 【免费下载链接】mmpose OpenMMLab Pose Estimation Toolbox and Benchmark. 项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose 做健身动作纠正时,只拿到身体的 17 个关节远远不够,手指和面部…

2026/9/20 12:55:40

KubeEdge 云边协同:从零跑通边缘节点接入

KubeEdge 云边协同:从零跑通边缘节点接入 【免费下载链接】kubeedge Kubernetes Native Edge Computing Framework (project under CNCF) 项目地址: https://gitcode.com/GitHub_Trending/ku/kubeedge 如果你曾经想把工厂里的一批边缘节点接进 Kubernetes&am…

2026/9/20 12:55:40

如何使用PHP实现数据的分页功能?

数据的分页功能在网络应用中非常常见,它可以帮助我们更好地展示和组织大量的数据。底层原理查询数据库:首先,我们需要从数据库中查询出所有的数据。但是,当数据量很大时,一次性加载所有数据会导致页面加载缓慢&#xf…

2026/9/20 12:50:39

RapidOCR 快速上手:两行代码完成离线图片文字识别

RapidOCR 快速上手:两行代码完成离线图片文字识别 【免费下载链接】RapidOCR 📄 Awesome OCR multiple programing languages toolkits based on ONNX Runtime, OpenVINO, MNN, PaddlePaddle, TensorRT and PyTorch. 项目地址: https://gitcode.com/Gi…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码