
我一开始的要求很简单:让 AI 把稿子念得像个人。
结果先听见了外星人,又听见电流麦。好不容易顺耳一点,两个片段接起来突然“噔”一声;再加降噪、淡入淡出和声场,噪声少了,人却像躲进被子里说话,句尾还被切掉了。
那时我才明白:AI 声音能继续调,不等于继续调就会更好。
这两天,我又把同一份“一键开箱提示词”交给 WorkBuddy 实跑。第一次文件能解码、参数也全绿,但我一听就知道:人不对。于是我们把提示词拆开重写,再让它从新目录完整跑了两遍。这一回,我更想讲的不是哪个模型厉害,而是一份提示词怎样才配得上“开箱即用”。
01 / 这一路并不轻松
不是试了 100 个模型,是留下了 100 多段候选
为了给风神播客找一对能长期用的男女主播,我先后走过腾讯云、Microsoft Edge、macOS 系统音色、VoxCPM2、CosyVoice、Qwen3-TTS、LuxTTS 等至少 7 条路线。
其中有一轮,我先做了 48 段原始声音,再筛成 7 组男女声。后来做一段正式双人稿,又生成了 32 个候选。机器第一轮就找出 3 处同音字歧义,我们没有把错字剪掉假装成功,而是保留失败稿、改写原句、整段重来。
VoxCPM2 的声音设计很有想象力,可长段里出现过撕裂、英文残片、背景音乐、无声和数字丢失。Qwen3-TTS 上限高,但如果参考声音、参考文字、随机种子和分段方式没有固定,同一个主播今天像这个人,明天又像另一个人。
这些失败让我慢慢放下“再找一个神模型”的念头。
真正该解决的,不是榜单上谁第一,而是三件小事:这是谁在说,能不能一直像同一个人,这条内容值不值得花时间慢慢做。
02 / 宁宁和明明
名字不是模型,稳定的人格要靠一整套东西守住
女主播叫宁宁,男主播叫明明。
这两个名字不是我训练出来的新模型,也不代表克隆了某个真人。它们只是风神播客里的角色名。背后真正决定声音身份的,是经过授权的参考声音、逐字匹配的参考文字、模型版本、参数、随机种子和分段规则。
我后来把两件事彻底分开:先选演员,再让演员念稿。
提示词主要管“这句话怎么说”;声音锚点负责“是谁在说”。演员选中以后,就把身份冻结下来。长稿按语义切成短段,漏字、换人、撕裂或异响时,失败段整段重来,不在一个词上剪剪补补。
还有一条最重要:机器分数只负责帮我筛,人耳保留最后的否决权。
机器可以告诉我有没有漏字、声纹像不像、响度齐不齐;但它不知道我听到第 20 分钟会不会累,也不知道一句话末尾那一点别扭,会不会让人忽然出戏。
03 / WorkBuddy 的第一次实跑
文件格式全过,我却把声音判了失败
第一版提示词确实帮 WorkBuddy 跑通了很多东西。它在 Apple M3 Max 上建了 Python 3.12 隔离环境,装好 Edge 和 MLX,也把 Qwen3-TTS 0.6B BF16 模型下载完整。镜像下载遇到 Xet / CAS 401 Unauthorized,它禁用 Xet 后断点续传;ffmpeg 强制使用 soxr 失败,它保留 0 字节现场,换回默认 swr 重跑。
最后 MP3 能完整解码,没有削波、坏帧或 NaN。manifest 里还写着 all_checks_passed=true。
问题是,声音严重走样。
复查后发现,原因不在 MP3,而在更前面。脚本把 Qwen 的预置演员 Serena / Uncle_Fu 改名成宁宁 / 明明,还没有固定 seed。相同两句问候连续生成四轮,总时长从 8.06 秒漂到 10.62 秒。其中一条女声源音频只有约 -30.5 LUFS,后面又用单遍动态 loudnorm 强行抬高。
这件事给我的教训很直接:能下载、能跑、能解码,都不等于声音对了。如果身份源一开始就错了,调 instruct、换 seed、拉响度,只是让错的人换一种说法。
04 / 改完再跑
第二次,提示词才真的能交付
我们把提示词改成了两条明确的路。
没有授权声音锚点时,最终问候固定用 Edge 晓晓 / 云希。本地 Qwen 照样安装,但 Serena / Uncle_Fu 只进 diagnostics/,用来检查模型能不能跑、同 seed 能不能复现。只有用户自己放入两条有权使用的参考 WAV、逐字稿和授权确认文件,才进入 Qwen 1.7B Base 克隆。
这次 WorkBuddy 没有覆盖旧目录,而是新建了一套工作区。它发现系统 Python 已是 3.13,于是主动选了 Python 3.12。模型缓存里已有 2.3 GB 快照,就直接用本地 snapshot 路径加载,没有再下一遍。
它还在现场抓到两个很细的坑:Qwen 音色表是小写名,脚本的存在性检查必须忽略大小写;ffmpeg alimiter 的自动增益默认开启,会把计算好的静态增益抵消,所以必须显式写 level=false。这两条也已反写进母提示词。
然后它完整跑了两遍。两份最终 MP3 都是 8.58 秒、48 kHz、单声道,响度 -20.4 LUFS,真峰值 -2.3 dBTP,SHA-256 完全一样。宁宁、明明从源 WAV 到成品的相关性分别是 0.999999 和 0.999881,14 项机器检查全部通过。Qwen 能力样音在两个独立进程里也得到了相同 PCM 哈希。
这一次可以说机器管线跑通了。好不好听,仍然要人自己听。
? 读者只要做三步
1. 在想存放声音工具的文件夹里打开 Codex、WorkBuddy 或其他能操作本机的编码 AI。
2. 打开宁宁 / 明明一键开箱页:https://aixlg.com/mp3/voice/#starter,把完整提示词原样复制过去。
3. 等它交付 `小龙哥_宁宁明明_开箱问候.mp3`、README、manifest 和日志。只说“已安装”不算完成。
在这台 Mac 上,新建 .venv 约 530 MB,Qwen 0.6B BF16 缓存约 2.3 GB。新提示词会先看内存和磁盘;本地模型不合适或连续失败两次,保留证据后仍然用 Edge 交付最终问候。不让读者下载了几个 GB,最后只得到一句“环境已配好”。
边界也要写清:这次实机验证的是 macOS Apple Silicon + WorkBuddy v5.3.8。Windows、Linux 和 NVIDIA 已写入兼容分流,但还没有在这轮做同等实机验收。
05 / 三条生产线
先把免费的跑顺,再谈付费
最后,宁宁和明明没有只留下一个版本,而是分成了三档。对日常新闻和普通播客,我更愿意先把这些免费路线用熟。免费不等于没有成本:Edge 要联网,本地模型会占磁盘、内存和电费,开源许可证也要自己看。但只要长期更新,这些投入通常比每条音频都调用付费 API 更踏实。
A 快速免费版:Edge 晓晓 / 云希。
它最快,也最容易上手。很适合快讯、草稿、临时预听和一次性内容。需要说清的是:edge-tts 命令虽然跑在自己的电脑上,声音仍由 Microsoft 在线服务合成。它不是离线本地模型,社区客户端也不等于官方生产服务。
复制提示词 A|换一台电脑复现 Edge 版
把下面整段交给 Codex、WorkBuddy 或其他能操作电脑的编码 AI:
【任务】在这台新电脑上搭好“宁宁 / 明明 Edge 快速版”,并真实生成问候音频。不要只写教程,直接执行到交付。1. 先检测操作系统、CPU 架构、可用的 Python 3.10—3.12、ffmpeg、网络和剩余磁盘;把结果写进 environment-report.txt。不要污染系统 Python,在当前文件夹新建 ningning-mingming-edge 和独立虚拟环境。macOS/Linux 生成 run.sh,macOS 另生成 run.command;Windows 生成 run.ps1。2. 按 https://github.com/rany2/edge-tts 的当前说明安装 edge-tts。安装后必须实际运行 Python 导入、edge-tts --version 和 edge-tts --list-voices;命令存在但包不能导入不算成功。确认 zh-CN-XiaoxiaoNeural 与 zh-CN-YunxiNeural 仍在音色表中。3. 宁宁固定使用 zh-CN-XiaoxiaoNeural,说:“你好,我是宁宁。小龙哥欢迎你。”明明固定使用 zh-CN-YunxiNeural,说:“我是明明。愿你也做出属于自己的好声音。”速率、音量、音高先保持 0,不加背景音乐、降噪、混响或变声。4. 两句分别落盘,中间加入 300 毫秒静音,再用 ffmpeg 合成 48 kHz、单声道、192 kbps MP3,文件名固定为 小龙哥_宁宁明明_Edge问候.mp3。不得裁掉句首、句尾或靠切词修错音。5. 用 ffprobe 和完整解码检查采样率、声道、时长、坏帧、削波与空文件。再从新运行目录完整跑第二遍。Edge 是在线服务,两遍哈希不同可以记录为提示,不能静默覆盖第一遍。6. 交付最终 MP3、两条源音频、generate_edge_duo.py、启动脚本、README.md、manifest.json 和 logs/。README 要写清:这条路线无需 API Key,但依赖 Microsoft 在线服务,社区客户端不代表官方 SLA。7. 只有音频真实生成并通过机器检查,才回复“完成”。若在线服务不可达,保留报错和现场,说明卡在哪一步;不要偷偷换模型,更不要拿一条旧音频冒充本次结果。B 免费本地版:LuxTTS 02 宁宁 / 明明。
这是我目前觉得很适合日常播客的一档。它能在 Apple Silicon 上本地跑,克隆快,资源占用比高配低不少。代价是参考声音必须干净,随机候选仍要筛,不能一键生成后闭眼交稿。
复制提示词 B|换一台电脑复现 LuxTTS 版
【任务】在这台新电脑上搭好“宁宁 / 明明 LuxTTS 本地版”,并用用户有权使用的参考声生成问候音频。不要只给命令,要执行、排错、复跑和验收。1. 在当前文件夹新建 ningning-mingming-luxtts,先检测系统、CPU、Apple MPS / NVIDIA CUDA / CPU 回退、Python 3.10—3.12、ffmpeg、内存和磁盘。优先 Python 3.12,至少预留 6 GB;不要硬用 Python 3.13,不要改系统 Python。2. 需要用户先放入 refs/ningning.wav 与 refs/mingming.wav。两段应是本人声音或明确获授权的声音,单人、无音乐、无混响,建议 10—14 秒。若文件或授权说明缺失,写清缺什么并停止;禁止把模型预置音色改名成宁宁、明明,也禁止下载陌生真人声音代替。3. 克隆 https://github.com/ysharma3501/LuxTTS.git,并固定到本次已验证提交 28ae6a61151684fffc9d1a7aa15eafa02286fe0b。创建独立虚拟环境,安装 requirements.txt,实际导入 torch、soundfile 与 zipvoice.luxvoice。模型使用 YatharthS/LuxTTS;先查本机 Hugging Face 缓存,没有完整快照才下载。4. Apple Silicon 用 mps,NVIDIA 用 cuda,其余才用 cpu。两位主播分别 encode_prompt,固定 duration=14.0、rms=0.01;生成固定 num_steps=4、guidance_scale=3.0、t_shift=0.9、speed=0.92、return_smooth=False,并为两位主播设置公开且固定的 seed。宁宁、明明仍念 Edge 版同样两句问候。5. 每位主播至少生成两条候选,源 WAV 原样保留。只允许必要的静态增益,增益不超过 6 dB;limiter 必须显式关闭自动增益 level=false。不要默认上动态 loudnorm,不做降噪、EQ、混响、变速或裁词。两句中间留 300 毫秒,合成 48 kHz 单声道 MP3,文件名为 小龙哥_宁宁明明_LuxTTS问候.mp3。6. 用 ffprobe 完整解码,并检查空文件、NaN / Inf、削波、句首句尾、时长和两次运行记录。分别记录仓库提交、模型快照、依赖版本、设备、参数、seed、耗时与 SHA-256。7. 交付最终 MP3、两条入选源 WAV、全部候选、generate_luxtts_duo.py、启动脚本、README.md、manifest.json 和 logs/。机器通过后仍标注“人耳待听”。LuxTTS 跑不通时不要退回 Edge 后假装这是中配版。C 免费本地高配版:Qwen3-TTS 宁宁 / 明明。
它更吃机器,也多几道生产步骤,但人物感、双语和身份冻结的空间更大。我把它留给正式节目、长期收藏和真正值得慢慢磨的内容。
复制提示词 C|换一台电脑复现 Qwen3-TTS 版
【任务】在这台新电脑上搭好“宁宁 / 明明 Qwen3-TTS 1.7B Base 本地版”,用用户自己的授权参考声生成两句问候。必须生成真实音频和复现证据,不能用预置演员冒充。1. 在当前文件夹新建 ningning-mingming-qwen3。先检测系统、CPU、Apple Silicon / NVIDIA CUDA、Python、ffmpeg、内存和磁盘,并写 environment-report.txt。建议至少 24 GB 内存、12 GB 可用磁盘;使用独立 Python 3.12 环境,不改系统环境。2. 用户必须提供 refs/ningning.wav、refs/ningning.txt、refs/mingming.wav、refs/mingming.txt 和 refs/AUTHORIZED.txt。两份 txt 必须与对应音频逐字一致。授权文件或任一锚点缺失就停止,绝不能把 Serena、Uncle_Fu 等预置演员改名为宁宁、明明。3. Apple Silicon 走 MLX:安装并实测 mlx、mlx-audio、numpy、soundfile,模型用 mlx-community/Qwen3-TTS-12Hz-1.7B-Base-bf16;先找完整缓存,没有才下载。NVIDIA 走 Qwen 官方 https://github.com/QwenLM/Qwen3-TTS 和 qwen-tts,模型用 Qwen/Qwen3-TTS-12Hz-1.7B-Base。不要在不兼容的机器上静默换成云 API。4. 根据官方 Base voice clone 接口编写 generate_qwen3_duo.py。宁宁和明明分别使用自己的 ref_audio 与逐字 ref_text;固定公开 seed 2026080201 / 2026080202,temperature=0.9、top_p=1.0、top_k=50、repetition_penalty=1.5。目标文字仍为前两档的同样两句问候。5. 两位主播分别生成源 WAV,中间留 300 毫秒,输出 48 kHz 单声道 192 kbps MP3,文件名为 小龙哥_宁宁明明_Qwen3问候.mp3。保留原生生成,不做降噪、混响、变速和裁词;只允许不超过 6 dB 的静态增益,limiter 设置 level=false。6. 用两个独立进程完整跑两遍。记录模型 ID / 本地 snapshot、包版本、设备、seed、参数、峰值内存、耗时、PCM 与成品 SHA-256。哈希不同就标成“未完全复现”,保留两份,不得覆盖;同时检查完整解码、NaN / Inf、削波、句首句尾和声纹是否突然换人。7. 交付最终 MP3、两条入选源 WAV、第二轮成品、generate_qwen3_duo.py、启动脚本、README.md、manifest.json 和 logs/。机器不满足 1.7B 时,准确报告阻塞,并单独建议 0.6B Base;没有得到用户同意,不能降级后仍说高配复现成功。为了尽量公平,三档都念了同一份中英混合男女对话稿,统一成 48 kHz 单声道、约 -18 LUFS,没有给某个模型偷偷换简单稿,也没有用更大声音冒充更好听。
在我当时那台 Mac 和那条生产链上:A 成品 71.060 秒,纯合成 15.077 秒;B 成品 68.967 秒,32 个候选共 25.817 秒,本机 MPS 约 1.4 GB;C 成品 63.980 秒,纯合成 38.006 秒,Metal 峰值约 10.7 GB。
这些只是一次真实样本,不是所有电脑都能复现的跑分,更不是任何服务的速度承诺。
? 同一份稿,自己听
三档完整对比页:https://aixlg.com/mp3/voice/
A Edge 宁宁 / 明明:https://aixlg.com/mp3/voice/audio/low-edge-bilingual-duo.mp3
B LuxTTS 宁宁 / 明明:https://aixlg.com/mp3/voice/audio/mid-luxtts-bilingual-duo.mp3
C Qwen3-TTS 宁宁 / 明明:https://aixlg.com/mp3/voice/audio/high-qwen3-bilingual-duo.mp3
别急着看数字。先听英文切回中文时还像不像同一个人,再听男女接话、句尾和长听疲劳感。
06 / 什么时候再花钱
日常免费跑,追求上限再看三大云厂商
播新闻、做日更、先听一遍稿子,真的没必要一开始就按字符付费。Edge 负责快,LuxTTS 负责日常本地生产,Qwen3-TTS 留给更讲究的正式内容。先把这三条免费生产线跑顺,已经能覆盖我大部分需求。
真要追求更高的自然度、情绪控制和稳定服务,又不想自己维护模型,我目前会直接从三家开始听:豆包 / 火山引擎、阿里千问、腾讯云。省心一点的办法,是拿同一段稿去三家试听,哪一家最像你要的节目,就用哪一家。这里没有永远的冠军,模型还在天天变。
阿里的 qwen-audio-3.0-tts-flash 是其中一条云端付费路线。它不用自己装模型,接 API 就能用;价格、免费额度、地域、音色和许可则以使用当天的控制台为准。
而我三档里的高配,是本地开源的 Qwen3-TTS 路线。一个是云 API,一个是本地模型;名字相近,部署方式、成本和控制权并不一样。
想先听再决定,下面一节放了能直接复制的完整地址。想在本地研究开源模型,则看 Qwen3-TTS 官方仓库:https://github.com/QwenLM/Qwen3-TTS。
07 / 云端也有好声音
先听三大,再慢慢扩展工具箱
如果不想折腾本地环境,豆包、阿里千问和腾讯现在都能做出不错的效果。腾讯的音色清单里有一批“超自然大模型音色”;豆包 / 火山引擎同时提供语音合成、声音复刻和大小模型路线。
除此之外,MiniMax Audio、ElevenLabs 和 Fish Audio 也很值得拿同一段稿子试一遍。它们擅长的语言、情绪、长文本、多人对话和速度各不相同,我不想只凭一两个演示就替大家宣布谁最好。
? 官方试听 / API 入口
豆包 / 火山引擎音色体验:https://console.volcengine.com/ark/region:ark+cn-beijing/experience/voice文档:https://www.volcengine.com/docs/6561/79817?lang=zh
阿里千问音色试听:https://help.aliyun.com/zh/model-studio/qwen-audio-tts-voice-list控制台:https://bailian.console.aliyun.com/?tab=model
腾讯云在线试听:https://console.cloud.tencent.com/tts/complexaudio超自然音色清单:https://cloud.tencent.com/document/product/1073/92668API:https://cloud.tencent.com/document/product/1073/37995
Microsoft Voice Gallery:https://speech.microsoft.com/portal?projecttype=voicegalleryedge-tts:https://github.com/rany2/edge-tts
MiniMax 在线试听:https://www.minimax.io/audio/text-to-speechAPI:https://platform.minimaxi.com/docs/api-reference/speech-t2a-http
ElevenLabs TTS Playground:https://elevenlabs.io/docs/eleven-creative/playground/text-to-speech
Fish Audio 在线试听:https://fish.audio/text-to-speechAPI:https://docs.fish.audio/api-reference/endpoint/openapi-v1/text-to-speech
模型更新很快,价格和许可也会变。正式使用前,请再看一遍当日规则,并只使用自己拥有或明确获授权的声音。
08 / 我现在会怎样测
七条笨办法,比追着榜单跑更有用
固定一份含中文、English、数字和专有名词的同稿。 先确认“谁在说”,不把预置音色改名成自己的主播。 一次只改一个变量,模型、锚点、ref text、参数和 seed 全部记录。 同一设置至少重跑两次。本地采样检查 PCM 哈希,最终链检查成品哈希和源到成品相关性。 响度先测后调,只做必要的静态增益,不让动态后处理把“更响”冒充“更自然”。 长稿按语义短段生成;错了整段重来,不裁词拼字。 机器检查完整性和一致性,人耳决定自然度与长听意愿。
还有最后一个选择题:这条内容能活多久?
明天就过期的快讯,用 Edge 迅速出声;日常更新,交给资源更轻的 LuxTTS;值得反复听的正式内容,再让 Qwen3-TTS 慢慢磨。收费 API 放在最后:需要免部署、低延迟、特殊音色,或者就是要追求当下更高的完成度时,再去豆包、阿里千问和腾讯里用同稿试听。
这不是永远正确的答案,只是我走过一轮弯路以后,暂时最顺手的分工。
09 / 复制给 AI,别再从安装开始踩坑
配置好不算完,生成那段问候才算
以前我给的是“模型名 + 安装说明”。这对熟手够用,对第一次碰语音模型的人还是太松:Python 版本不对、edge-tts 命令还在但包已经坏了、模型下载一半中断,任何一处都可能把人卡在“差最后一步”。所以这次先把三条独立复现提示词,分别放到了三档配置下面。
所以这次我把它改成了一份可以直接交给 Codex、WorkBuddy 或其他编码 AI 的施工单。前面三步是读者要做的事,交给 AI 以后,还有几条不能商量的完结线:
先实测包能不能导入、能不能合成,不拿“命令存在”当成功。 先找本机模型缓存,确实没有才下载;空间不足时不让几个 GB 的模型拖死最终交付。 先分清“谁在说”。Edge 公开音色负责公开问候,Qwen 预置演员只做诊断,只有授权锚点齐全才做 Base 克隆。 固定 seed,独立跑两遍;本地能力样音比 PCM 哈希,最终问候比成品哈希。 响度只做不超过 6 dB 的静态增益,关闭 limiter 的自动归一化;当前 ffmpeg 没有 soxr 时就用默认 swr。 最后交付 MP3、两条源音频、README、manifest、日志和可重复运行脚本。少一项,都不能只回一句“完成”。
完结问候也固定好了。宁宁先说:“你好,我是宁宁。小龙哥欢迎你。”明明接着说:“我是明明。愿你也做出属于自己的好声音。”两段源音频真实落盘,中间留 300 毫秒,再合成 48 kHz 单声道 MP3。manifest 逐项记录 14 道检查;第一轮全过后,还要用快速模式再跑一轮。两份哈希不同不一定代表云端服务坏了,但必须把两份都留下,不能静默覆盖。
? 一键开箱入口
打开宁宁 / 明明体验页,一键复制完整母提示词:https://aixlg.com/mp3/voice/#starter
页面里还放了一段 WorkBuddy 双轮回归留下的真实样片:Edge 在线路线,宁宁和明明共 8.58 秒。没有自动播放,点开以后自己听。
这里也要把话说窄:公开开箱版的宁宁、明明成品使用 Edge 公开音色;Qwen3-TTS 内置的 Serena / Uncle_Fu 只是本地能力样音,不是小龙哥培养出来的宁宁 02 / 明明 09。给大家的是同一套角色设定、身份边界和可复现流程,不是把小龙哥私有制作链里的中配、高配声音锚点公开出去,更不能宣称声纹一模一样。
AI 发展得太快了。
快到我把这篇文章发出去,可能又会有新的模型和工具出现。今天写下来的,只是我此刻走过的路。小龙哥还在摸索,也随时准备推翻自己。
照着三段提示词跑时遇到问题,也欢迎丢到评论区。最好带上操作系统、显卡或内存、卡住的步骤,以及报错最后几十行;这样大家更容易一起找到原因。
如果你发现了更好的免费模型、更省事的安装办法,或者觉得哪一条验收规则该改,也欢迎写在评论区指点小龙哥。能附上同一段测试稿、生成设置和试听样本,就更有用了。
大家把真实样本放在一起,比争一张“谁最好”的榜单有意思得多。
最近,借着 AI,小龙哥也把自己一步步练成了一个会编程序的“高级程序员”。
小龙哥 Mac 哲学,是我第一个完成度还算比较高、也真正敢拿出来给大家用的产品。欢迎大家试试,哪里不好用,也请直接告诉我。
小龙哥 Mac 哲学
https://tlww.cc/
10 / 明天继续
Codex、Claude Code、WorkBuddy、千问办公,到底怎么选?
下一期,我想把国外的 Codex、Claude Code,国内的 WorkBuddy、千问办公,以及 Marvis 等工具放到一张桌上。它们并不是同一种东西,却经常被放在一起问:普通人到底该怎么选?
我不照着参数表念,也不替任何一家站台。小龙哥会从自己的实际使用出发,看看每一款真正擅长什么、什么人用着更顺手。踩过的坑,也不藏着。
明天继续。
说明:三档资源来自小龙哥 2026 年 7 月的一次同稿实测;WorkBuddy 开箱回归与官方服务信息核对于 2026 年 8 月 2 日,只代表当时设备与流程。三段对比样片与一段开箱问候已通过机器检查,读者偏好仍以自己试听为准。合成或克隆声音前,请确认授权、平台许可与生成式 AI 标识要求。

