UTILS.
100% 浏览器内运行
🔉

语音编码器 (Soundex / Metaphone)

将单词或姓名编码为其 Soundex 代码,使发音相近的姓名产生碰撞,并可选启用 Metaphone 视图作为第二种语音算法。

关于此工具

语音编码器将单词或姓名转换为语音代码,使发音相近的姓名映射到相同的值——这正是模糊姓名匹配、家谱搜索和消除拼写变体重复背后的诀窍。默认使用美式 Soundex,一个四字符代码:它保留首字母,然后将其余辅音映射为数字(B,F,P,V→1;C,G,J,K,Q,S,X,Z→2;D,T→3;L→4;M,N→5;R→6),而元音以及 H、W、Y 映射为 0。

该算法严格遵循经典规则。相邻的、或仅被 H 或 W 分隔的相同数字连串会合并为单个数字,而被元音分隔的字母则分别编码。所有的零都被丢弃,保留的首字母作为前缀,结果为前三位数字右侧补零至长度四。这就是为什么 Robert 和 Rupert 都编码为 R163,而 Ashcraft 编码为 A261。

将算法开关切换到 Metaphone(或“两者”)可获得第二种更现代的语音视图。Metaphone 应用英语发音规则——去除不发音字母、PH→F、TH→0(theta)、SH/TIA/SIO→X、软音与硬音 C 和 G 等等——生成一个可变长度的键,对于英语单词,它通常比 Soundex 更准确地将同音词归为一组。一切都是在浏览器本地计算的确定性状态机;不查询也不传输任何数据。

常见问题

Soundex 编码是如何工作的?
保留首字母,然后对其余部分编码:B,F,P,V→1;C,G,J,K,Q,S,X,Z→2;D,T→3;L→4;M,N→5;R→6;元音以及 H,W,Y→0。合并重复数字(包括仅被 H 或 W 分隔的),丢弃零,以首字母作前缀,并补零或截断至四个字符,例如 Robert→R163。
为什么 Robert 和 Rupert 给出相同的代码?
两者都以 R 开头,其辅音序列映射为相同的数字(b/p→1、r→6、t→3),得出 R163。这种碰撞正是 Soundex 的意义所在:发音相近的姓名共享一个代码,非常适合在拼写不一致的记录中搜索。
Metaphone 是什么,它有何不同?
Metaphone 是一种较晚出现的语音算法,它应用英语发音规则而非固定的数字表。它处理不发音字母、PH→F、TH→0、软/硬音 C 和 G 等,生成一个可变长度的键,通常比 Soundex 更精确地匹配英语同音词。
它能处理全名或短语吗?
两种算法都编码单个单词——会先去除非字母字符并将单词转为大写。对于全名,请分别编码每一部分(名、姓)。一切都在本地计算,不做任何外部查询。

更多工具