用途:为 VoiceMode 的 TTS 添加并使用自定义声音,即“声音克隆/模仿某人说话”。当用户在 voicemode:converse 中传入未知的 voice 名称,或想克隆声音、添加参考片段、排查 mlx-audio 服务时使用。
主要能力:基于本地 Qwen3-TTS(运行在 mlx-audio 上)用短参考音频合成新语音;任何匹配 VOICEMODE_VOICES_DIR 中配置的声音会自动路由到 mlx-audio,而非 Kokoro/OpenAI。状态为预览/实验性,仅 Apple Silicon,需主动启用。
使用方式: 先安装本地 TTS 服务(一次性,仅 Apple Silicon): voicemode service install mlx-audio
从参考音频添加声音: voicemode clone add fleabag ~/Downloads/fleabag-clip.wav
使用: voicemode converse --voice fleabag
在 MCP 的 converse 工具中传 voice="fleabag"。
参考音频要求:时长 3-9 秒(5-9 秒最佳);单声道纯语音,无音乐或多人重叠;支持 WAV、MP3、M4A 等,由 ffmpeg 归一化;输出固定为单声道 24 kHz 16 位 PCM,loudnorm I=-16 TP=-1.5 LRA=11,归一化结果覆盖写入 default.wav。务必同时提供文本转录:模型会以参考文本为条件,否则会自行 ASR,识别错误会导致合成口吃/结巴。voicemode clone add 会自动转写进 voice.md(需人工校对);voice-lab 的 sayas 读取与 wav 同目录的 <clip>.txt;MCP converse 工具在传入音频路径的 voice 时同时接收 ref_text。裁剪过长音频: ffmpeg -i in.wav -ss 0 -t 8 out.wav
磁盘布局:声音以目录形式存于 ~/.voicemode/voices/<name>/,含 default.wav(必需)和 voice.md(含 name、source、duration_seconds、format、transcript)。voices.json 作为旧索引保留。可放多个 WAV,把“启用”的那个符号链接到 default.wav;有多个 WAV 但无 default.wav 的目录视为样本箱并跳过。
配置项:VOICEMODE_VOICES_DIR(默认 ~/.voicemode/voices)、VOICEMODE_REMOTE_VOICES_DIR、VOICEMODE_MLX_AUDIO_BASE_URL(默认 http://127.0.0.1:8890/v1)、VOICEMODE_IMPRESSIONS_MODEL(默认 mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16)。8.7.x 中旧的 VOICEMODE_CLONE_* 名称仅一次性兼容,8.8.0 移除,建议更新。
限制与注意事项:缺少参考转录会导致合成口吃;避免使用 Kokoro 已有声音名(如 af_sky)以免遮蔽;仅 Apple Silicon,Intel Mac / Linux / Windows 无回退方案;首次合成需下载约 3.4 GB 模型,较慢。