狗名字生成器

按 1~3 个音节的词库生成犬名,并自动剔除与 sit、down、come 等口令只差一个音位的候选,让名字在嘈杂户外既叫得出口、又不会被听成口令。

Aspen
Bagel
Bingo
Biscuit
Brownie
Cedar
Clover
Cocoa
Cookie
Coral

上面这 10 个名字是写在页面里的固定演示值,打开就能看到成品长什么样;点一次「生成名字」(或在数量、音节选择框里按 Enter)才会真正随机抽取。首屏默认条件是:数量 10、音节 2 档、谐音过滤开启。

使用方法

  1. 先选「音节档位」。默认是 2 个音节,也是绝大多数训犬建议里最好用的那一档;想要像口令一样短促就切到 1 音节,要写进血统登记或证书这类正式场合再考虑 3 音节。
  2. 「生成数量」填 10(示例值),允许 1~50 的整数。数量只决定一次吐出几条,不改变每条名字的质量。
  3. 保持「谐音过滤」为「排除与指令词谐音的名字」。工具会把候选逐个与 20 个常用口令做编辑距离比对,只差一个音位的直接丢掉。
  4. 点「生成名字」,结果区出现 10 个互不相同的名字,一行一个;点「复制名字」一次带走,或点「导出 CSV」存成表格文件。
  5. 下面的「常见词根与命名分类」表默认显示 12 行,点「加载更多」铺开全部 16 行,点「复制对照表」得到制表符分隔文本。

这个狗名字生成器 能解决什么问题

第一件是把「叫得响」和「听得清」分开考虑。很多人挑名字只看字面好不好听,忽略了它每天要被喊几十遍、而且要隔着一条马路喊。本工具把音节长度当成第一筛选条件,正是因为它直接决定召回反应的速度。

第二件是提前排掉与口令撞音的名字。训犬时 sit、down、come、stay 这些口令会反复出现,如果名字和其中任何一个只差一个音位,狗就得在「这是我的名字」和「这是一个动作」之间反复做判断。手工排查很难,因为要逐个对比几十个口令;本工具把这一步自动化了。

第三件是一次拿到一批备选再慢慢试。看中一个名字和狗真的应声之间往往隔着好几天,所以需要一次生成十几条、逐个念给狗听。默认档位下抽 10 条有约 7.27×1013 种排列,够你挑很久而不重样。

第四件是给词根找一个方向。不知道从哪儿想起时,按「自然意象 / 力量与守护 / 食物系 / 音韵拟声」四个分类各看一遍,比漫无目的地翻列表快得多。这一份狗名字生成器 的词库共 72 个候选,覆盖的正是这四类。

本页不做这些事:不承诺名字能带来任何性格或运气上的影响,不判断某个名字在某个地区是否已经被大量使用,也不提供血统登记所需的唯一性校验——那属于登记机构自己的规则。

原理:音节长度、召回反应与谐音过滤

先说音节长度为什么是第一位的。狗并不理解词语的含义,它记住的是一段有节奏的声音模式:几个音节、重音落在第几拍、结尾是开还是收。1~2 个音节的名字有两个直接好处。第一,它能在一口气里完整喊出来,不需要中途换气,声音不会被打断;第二,它和日常说话的节奏明显不同,狗更容易把它从背景语音里拎出来。3 音节及以上适合写进证书或血统登记,但用来做户外召回时,往往会被喊得越来越含糊。

再说选哪个音。名字里真正被狗抓住的是辅音的「边缘」。s、f、sh 这类清擦音和 p、t、k 这类爆破音,能量集中在数千赫兹的高频区;而风声、车流、人群轰鸣的能量主要集中在几百赫兹以下的低频区。频段错开意味着高频成分不容易被低频环境噪声盖住,所以在嘈杂的户外,以 s / k / t 起头或收尾的名字(Sky、Tess、Bolt、Biscuit、Pickle)通常比以 m / n / r 起头的名字更容易被分辨——m、n 是鼻音、r 是近音,能量都偏低频,在风里和引擎声里更容易糊成一团。押韵的长元音结尾(比如拖长的 -oo、-ay)在远处会被自然地拖得更长,反而模糊了音节边界,这也是为什么许多训练资料建议名字用短元音 + 辅音收口。

最关键的一步是与口令拉开音位距离。做法是把候选名字转成小写,与 20 个常用口令逐一算 Levenshtein 编辑距离(也就是把一个字符串改成另一个所需的最少插入、删除、替换次数)。距离 ≤1 就判定为谐音并丢弃。这一条在本页词库里实打实命中了 6 个:Bit、Sip、Kit 都只与 sit 差一个音位,Bowl 与 bow 差一个音位,Hear 与 here 差一个音位,Nod 与 no 差一个音位;双音节里只有 Downy 与 down 命中。这些名字不是不好听,而是它们会让口令训练事倍功半。

为什么阈值取 1,不取 2。取 2 会连 Sky(与 sit 距离 2)、Nell(与 heel 距离 2)、Reed(与 heel 距离 2)一起误伤,把可用名字砍掉一大片,而它们在实际口令里并不构成真正的冲突。取 1 只挡「基本上就是同一个词」的情况,代价小、收益明确。这个取舍也意味着过滤器不是万能的:Shadow 与 shake 的距离是 3、Brownie 与 down 的距离是 4,都会被放行,但真到嘈杂的公园里仍可能听混——所以工具帮你筛掉明显冲突,最后一遍还是要你自己对着狗喊两声确认。

随机与去重是怎么做的。随机数取自浏览器的 crypto.getRandomValues(W3C Web Cryptography API 定义,NIST SP 800-90A 把这类加密随机数作为凭据级随机的基准),拿到的 32 位整数先做拒绝采样消除取模偏差,再用 Fisher–Yates 从后往前逐位与 rand(i+1) 交换洗牌,最后取前 n 个。这样同一批名字之间天然不会重复,也不依赖会被预测的伪随机序列。

输入到输出的完整链路。数量 + 音节档位 + 过滤开关 → 取出该档的词库(1 档 30 个、2 档 30 个、3 档 12 个,共 72 个)→ 过滤开关开启时逐个过编辑距离,得到 25 / 29 / 12 个候选 → 检查数量是否超过候选数 → Fisher–Yates 洗牌后取前 n 个 → 拼成换行文本,并同步算出排列数与信息量。

完整示例(数值仅作演示)

示例条件与页面打开时的默认值完全一致:音节 2 档、数量 10 条、谐音过滤开启。

下面这 10 个名字就是默认条件下写在页面里的演示结果,用来展示排版;你点一次「生成名字」得到的会是另一组:

Aspen
Bagel
Bingo
Biscuit
Brownie
Cedar
Clover
Cocoa
Cookie
Coral

常见词根、命名分类与档位对照表

第一张表的四列分别是「命名分类 / 代表词根 / 语义倾向 / 发音与召回提示」。默认显示 12 行,其余行点上方「加载更多」展开;这 16 行同时也是「复制对照表」和「导出 CSV」的数据来源,下面两张参数表则给出候选池与上限的关系,三张表合起来就是这一份狗名字生成器 的完整参数面。

命名分类代表词根语义倾向发音与召回提示
自然意象Aspen / Cedar / Willow树木与林地首音节带清辅音 s / k / t,短促、尾音以鼻音收口,户外远处也不易糊成一团
自然意象Sky / Storm / Snow天气与天空单音节最佳:一个元音块 + 一个尾辅音,喊一次能完整落地
自然意象Meadow / Clover / Moss草地与苔藓m / kl 起头偏柔和,适合安静环境,嘈杂场地建议改用 s / k 起头
自然意象River / Coral / Reed水系与/或海r 音在远处易被环境噪声掩盖,训练时往往需要配手势
力量与守护Rex / Duke / Tank强横、短促爆破音 k / t 收尾,能量集中在 2~4 kHz,人耳在风中仍分辨得出
力量与守护Bolt / Fang / Flint锐利、迅捷单音节 + 清辅音头,是本页「易召回」档的代表写法
力量与守护Shadow / Rocket / Tiger速度与威势双音节且重音在第一拍,比三音节更快被狗锁定
力量与守护Ghost / Zeus / Buzz神秘与拟声z / g 为浊音,室内响亮、户外衰减较快
食物系Biscuit / Waffle / Bagel主食与点心双音节、重音在前,家人之间好念,但收尾多为弱势音节
食物系Cookie / Cocoa / Mango甜食与水果元音悠长,容易被拉长成呼唤声,适合当「召回口令」
食物系Pickle / Pepper / Olive调味与佐料p 起头的爆破音自带冲击感,嘈杂场景清晰度好
食物系Pumpkin / Noodle / Ginger家常食材鼻音收尾(n),远距离传播稳定
音韵拟声Buzz / Fizz / Echo象声词本身就是声音,狗对连续摩擦音 s / z 的定位依赖双耳时间差
音韵拟声Bingo / Bell / Chime钟铃与游戏b / ch 起头,音节界限清楚,不易与口令连读混淆
音韵拟声Cricket / Whisper / Song虫鸣与低语wh / s 为清擦音,能量高频、指向性强
音韵拟声Domino / Jamboree / Vanilla三音节节奏三音节只在安静环境使用,户外召回建议降回 1~2 音节

音节的分布是这样的:1 音节 30 个(过滤后 25 个)、2 音节 30 个(过滤后 29 个)、3 音节 12 个(全部通过),合计 72 个候选、过滤后 66 个。之所以 2 音节档过滤只掉 1 个,是因为双音节名字与单音节口令天然就拉开了长度差距,撞音的机会本来就少。

下面第二张表的三个档位对应页面上的「音节档位」下拉框,数字均由复算脚本按词库逐项算出,可直接对照结果区上方的统计卡。

音节档位词库候选过滤后候选抽 10 条的排列数信息量
1 个音节30 个25 个1.19×101343.4 bits
2 个音节(默认)30 个29 个7.27×101346.0 bits
3 个音节12 个12 个2.40×10827.8 bits

最后一张表是「结果条数」与「候选池」的关系,它决定了什么时候会被拒绝:

条件候选池可生成的条数上限超出后的提示
2 音节 + 过滤(默认)29 个29 条要求把数量降到 29 以内
2 音节 + 不过滤30 个30 条要求把数量降到 30 以内
1 音节 + 过滤25 个25 条要求把数量降到 25 以内
3 音节 + 过滤12 个12 条要求把数量降到 12 以内

边界与精度说明

常见问题

为什么默认推荐 2 个音节,而不是越短越好?

1 音节确实喊起来最快,但可选面窄(过滤后只剩 25 个),而且容易和日常短词撞上;2 音节在「喊得完」和「长得开」之间最平衡,也因此是训练资料里出现频率最高的建议。3 音节更正式,但户外召回时容易被喊糊。

谐音过滤到底是怎么判定「像」的?

用 Levenshtein 编辑距离:把名字转小写,与 20 个口令逐一计算「最少要几步才能改成对方」,距离 ≤1 就丢弃。所以 Kit 与 sit、Bowl 与 bow、Hear 与 here、Nod 与 no 会被挡下,而 Sky 与 sit(距离 2)会放行。

我的口令是中文的,过滤还有意义吗?

有,但覆盖不全。工具的口令词表是 20 个英文常用口令,如果你用的是「坐下」「过来」,它不会替你把中文谐音也挡掉。这时建议把过滤当作第一道筛子,自己再拿中文口令对一遍音节。

为什么 3 音节档最多只能生成 12 条?

因为 3 音节词库里就是 12 个精选名字,抽取是无放回的,超过 12 就无解。工具不会静默重复,而是直接报错并告诉你上限,避免你拿到一堆重复结果却不知道为什么。

生成的名字会不会和上一批重复?

不会刻意重复。每一批都是全新的洗牌抽样,批次之间没有记忆;单批之内更不会重复,因为抽取方式本身就排除了重复。默认档位下抽 10 条约有 7.27×1013 种排列,撞车的概率可以忽略。

为什么以 s、k 起头的名字被单独推荐?

因为它们是清辅音,能量集中在数千赫兹的高频区,而风噪、车流这类环境噪声主要在低频。频段错开意味着它们在嘈杂户外不容易被盖住,喊出去之后狗更容易定位到声音来源。相反,m、n、r 这类鼻音和近音偏低频,安静环境没问题,风里就吃亏。

名字里带长元音结尾真的有影响吗?

有。拖长的 -oo、-ay 这类结尾在远处会被自然地继续拉长,音节边界变模糊,狗更难判断「名字念完了没有」。短元音加辅音收口(Tess、Bolt、Biscuit 的最后一拍)边界清楚,喊完就是喊完。

生成的名字可以直接用来做血统登记吗?

不能直接照搬。登记名(registered name)和日常叫名(call name)是两回事,登记名通常有字符数上限、不能用数字、不能包含已被占用的犬舍名,规则由登记机构各自规定。本工具生成的是日常叫名,适合训犬和召回;登记名请按机构要求另行拼写。

相关工具