Metaphone是一个语音算法,主要是用在英语单字或是辞汇发音的标引。Metaphone是由飞利浦罗伦斯利用Soundex的缺陷来改善的演算法。此演算法是利用较大的英语发音规则,所以比Soundex更为精准。Metaphone也可作为内建式的工具,在PHP就有相关工具。后来原作者制作新版本的演算法“Double metaphone”,比原本的算法还更加精准。该演算法会转换相似的发音。

转换规则

  B ----> B      unless at the end of word after "m", as in "dumb", "McComb"
  C ----> X      (sh) if "-cia-" or "-ch-"
          S      if "-ci-", "-ce-", or "-cy-"
                 SILENT if "-sci-", "-sce-", or "-scy-"
          K      otherwise, including in "-sch-"
  D ----> J      if in "-dge-", "-dgy-", or "-dgi-"
          T      otherwise
  F ----> F
  G ---->        SILENT if in "-gh-" and not at end or before a vowel
                           in "-gn" or "-gned"
                           in "-dge-" etc., as in above rule
          J      if before "i", or "e", or "y" if not double "gg"
          K      otherwise
  H ---->        SILENT if after vowel and no vowel follows
                        or after "-ch-", "-sh-", "-ph-", "-th-", "-gh-"
          H      otherwise
  J ----> J
  K ---->        SILENT if after "c"
          K      otherwise
  L ----> L
  M ----> M
  N ----> N
  P ----> F      if before "h"
          P      otherwise
  Q ----> K
  R ----> R
  S ----> X      (sh) if before "h" or in "-sio-" or "-sia-"
          S      otherwise
  T ----> X      (sh) if "-tia-" or "-tio-"
          0      (th) if before "h"
                 silent if in "-tch-"
          T      otherwise
  V ----> F
  W ---->        SILENT if not followed by a vowel
          W      if followed by a vowel
  X ----> KS
  Y ---->        SILENT if not followed by a vowel
          Y      if followed by a vowel
  Z ----> S

资料来源

外部链接