← 返回文章库

小智怎么换音色和人设:这些不在固件里改

最后更新 2026-07-28
⏱ 约 12 分钟 🟡 涉接线/强电
你将学到
  • 分清哪些个性化在固件里改、哪些在服务端改
  • 知道音色、人设、昵称、语言分别在哪一层配置
  • 理解为什么换音色比换唤醒词容易得多
  • 在官方服务器和自建服务端两种情况下都知道往哪找
⎇ 基于开源项目(学习解读,非搬运)
作者:78 等开源贡献者
协议:MIT

本文讲解原理与流程、引用关键片段并注明出处,版权归原作者,遵循其开源协议;一切以上游仓库最新版本为准。

"我想让小智换个声音,是不是要改固件重新烧?"

不用。而且这个误会挺费时间的——有人为了换个音色,跑去翻源码、翻 menuconfig 选项,翻了半天什么都没找到,因为它根本不在那儿

📌 说明

具体配置界面和可选项会随服务端版本变化,以你实际使用的服务端当前状态为准。小智固件代码版权归原作者 78 及社区贡献者,遵循 MIT 协议。本文写于 2026 年 7 月底。

先分清两层

小智是设备 + 服务端的组合,个性化的东西分在两层,搞清楚这个分工,你就再也不会找错地方了:

固件层(要重新编译烧录)

  • 唤醒词
  • 引脚、音频 codec、屏幕这些硬件配置
  • 板型

服务端层(改配置即可,不用碰固件)

  • 音色(它用什么声音说话)
  • 人设 / 角色(它的性格、说话风格)
  • 昵称(叫它什么,默认是"小智")
  • 对话语言
  • 角色介绍 / 提示词

判断规律其实很直观:跟"硬件长什么样"有关的,在固件里;跟"它是个什么样的人"有关的,在服务端。

音色和人设显然属于后者——它们是云端大模型和语音合成在决定,不是芯片在决定。芯片只负责把音频数据播出来,至于那段音频听起来是谁的声音,是服务端合成好的。

想通这一层,还能顺带解释一件事:为什么换音色很轻松,换唤醒词却那么难。 唤醒词是离线跑在芯片上的,要靠预先训练好的模型资源,动它就得动固件、还依赖模型能不能拿到(相关的坑见小智唤醒词改了不生效)。而音色只是服务端合成时换个参数,它不需要芯片知道任何事

用官方服务器时在哪改

如果你的设备接的是官方服务器(免开发环境烧录的固件默认就是这条路),那么在官方控制台里配置。

可配置的东西大致是这些:角色模板(有现成的可选)、昵称对话语言角色音色,以及自定义角色介绍

这里最值得花时间的其实不是音色,是角色介绍——也就是给大模型的提示词。音色决定它听起来像谁,角色介绍决定它像谁在说话。同样一个音色,配上不同的角色设定,体验差别比换音色大得多。

一个实用建议:别把角色介绍写成一段形容词堆砌("你是一个活泼可爱、聪明伶俐的助手")。这种写法对大模型的约束很弱。更有效的是写具体的行为规则——说话多长、能不能反问、遇到不知道的怎么答、什么话题不聊。做过提示词的人对这套很熟,用在这里完全一样。

自建服务端时在哪改

如果你自建了服务端,配置就在你自己的服务里,能玩的空间也更大。

以社区里比较主流的 xinnan-tech/xiaozhi-esp32-server 为例,它的全模块安装方式提供多用户/多智能体管理和 Web 控制台,配置存数据库;而最简化安装是单体管理,数据存在配置文件里。想要在界面上方便地调音色人设,走全模块那条路更合适——代价是配置要求更高(全 API 方案约 2 核 4G,含本地语音方案要 4 核 8G)。

自建的好处在于 TTS 是你自己选的。该项目支持 EdgeTTS 这类免费平台,也支持火山、讯飞等商业服务。音色可选的范围直接取决于你接了哪家 TTS——换 TTS 供应商,就等于换了一整套音色库

另外,社区里的 Java 版实现 joey-zhou/xiaozhi-esp32-server-java 明确把音色定制、角色切换、对话记录管理做成了平台功能。如果你的诉求是"给多个设备、多个角色做管理",这类带控制台的实现会比手工改配置文件舒服。

各服务端实现的功能和部署要求差异不小,选之前建议先看各自 README 的配置要求,别照抄别人的结论。相关取舍见小智自建后端怎么选

角色介绍到底怎么写

既然角色介绍是性价比最高的一项,值得单独讲讲怎么写。

先说最常见的写法为什么不好用。 大多数人写的是这种:

你是一个活泼可爱、聪明伶俐、乐于助人的智能助手。

一堆形容词,对模型的约束几乎为零。"活泼"是多活泼?体现在哪?模型只能自由发挥,结果就是你觉得"好像没什么变化"。

更有效的写法是给具体的行为规则。 大致覆盖这几块:

身份与关系 —— 它是谁,和用户什么关系。"你是放在厨房的小助手,主人做饭时会问你问题",比"你是智能助手"信息量大得多。

说话长度 —— 这条对语音设备极其重要,却最常被忘。文字场景下回答长点无所谓,语音场景下一段三百字的回答是灾难,用户听到一半就想拔电源。明确写"每次回答控制在两三句话以内,除非用户要求详细说"。

语气和用词 —— 用不用口语、能不能开玩笑、称呼用什么。

不知道时怎么办 —— 不写这条,模型倾向于硬答。明确写"不确定的事直接说不知道,别猜"。

边界 —— 哪些话题不聊、什么情况下要提醒用户找人。

为什么"说话长度"值得单独强调:文字可以扫读,语音只能顺着听,信息密度低、还不能跳过。同一个模型、同一个音色,把回答从五句压到两句,体验提升通常比换音色明显得多。 这是语音产品和聊天产品最实质的差别之一,也是新手最容易忽略的一条。

写完记得实际对话几轮再调——提示词是调出来的,不是一次写对的。

想做"专属感",优先级建议

如果你的真实目的是"让它像我的东西",按投入产出排,我会这样排:

第一优先:角色介绍 / 提示词。 零成本、立刻生效、感知最强。改一句话,它整个说话方式就变了。

第二优先:音色 + 昵称。 也是服务端配置,点几下的事。

第三优先:外观。 外壳、屏幕上的表情——这些对"专属感"的贡献其实远超技术层面的折腾,但常被工程师忽略。

最后才是唤醒词。 投入最大、坑最多、收益最小。它是你在其他都做完之后才该碰的东西,而不是一上来就死磕的。

很多人一开始就卡在唤醒词上,折腾一周没进展,整个项目就停了。换个顺序,一天就能得到一个明显"是我的"的小智。

相关:把小智调成你自己的讲个性化的整体思路,小智唤醒词改了不生效讲唤醒词那条路上的已知问题,小智自建后端怎么选讲服务端方案。

📄 来源 / 自校链接

本文为公开资料整理,非亲测。关键参数与代码请结合实物与下列官方来源验证。

内容有错、看不懂、或想看下一期?告诉我们 →

本文为公开资料的学习整理,非亲测。涉接线/花钱/合规的步骤请结合实物与官方最新资料验证,风险自负。见免责声明