phonetics
Compute phonetic key of strings for indexing or fuzzy matching
What it is and what it does
Phonetics is a Python library that converts strings into phonetic keys using four well-known algorithms: Soundex, NYSIIS (New York State Identification and Intelligence System), Metaphone, and Double Metaphone. These algorithms are commonly used in search and indexing systems to find words that sound similar despite different spellings—for example, matching 'Smith' with 'Smythe' or 'Catherine' with 'Katherine'.
The library provides a simple interface with one function per algorithm. It was designed for developers building fuzzy-matching or phonetic-search features into applications. However, the package is abandoned as of March 2018, with no maintenance or updates since then. The declared Python support covers only versions 2.6 through 3.5, all of which are end-of-life; whether it runs on modern Python versions is unknown.
Use it for:
- Build a search feature that matches names phonetically despite spelling variations.
- Index database records by phonetic similarity for duplicate detection.
- Implement fuzzy matching in contact or customer record systems.
- Create a spell-checker or autocorrect system based on phonetic similarity.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Computes phonetic keys of strings using Soundex, NYSIIS, Metaphone, and Double Metaphone algorithms for fuzzy matching and phonetic indexing.
No. The package is abandoned (last update 2018-03-23) and targets only Python 2.6–3.5, all end-of-life. Compatibility with Python 3.6+ is unverified. While the MIT license is permissive and no known vulnerabilities exist, the high install friction combined with lack of maintenance makes this unsuitable for new projects. Consider maintained alternatives for phonetic algorithms.
Install
phonetics on PyPI
pip
pip install phoneticsuv
uv add phoneticspoetry
poetry add phoneticsInstalling phonetics
Before you install
High install friction due to source distribution format. Maintenance is abandoned—last release was 2018-03-23 with no updates since. The package targets Python 2.6–3.5, which are now end-of-life; compatibility with modern Python versions is unverified.
License in practice
MIT license is permissive and imposes no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install phonetics
import phonetics
result = phonetics.dmetaphone('Danger')
print(result) # ('TNJR', 'TNKR')
Package targets Python 2.6–3.5; compatibility with Python 3.6+ is unverified and likely broken due to abandonment.
Verify before relying
- Whether the package works on Python 3.6 or later versions without modification.
- Whether the source distribution builds successfully on modern systems.
- Performance characteristics or accuracy comparisons between the four algorithms.
- Whether any of the algorithms have known limitations or edge cases.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 3,066 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 328,590/month — #7,554 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: phonetics-1.0.5.tar.gz
Keywords: phonetics, metaphone, soundex, indexing, search, fuzzy
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
MetaphoneImplements the Metaphone and Double Metaphone…
permissive · top 15,000 on PyPI
pyphoneticsPyphonetics implements phonetic matching…
permissive · top 15,000 on PyPI
soundexImplements the Soundex phonetic algorithm for…
copyleft · top 15,000 on PyPI
pysimstringProvides fast approximate string matching and…
unclear · top 15,000 on PyPI
cmudictProvides Python access to the CMU Pronouncing…
copyleft · top 15,000 on PyPI
thefuzzTheFuzz performs fuzzy string matching using…
permissive · top 5,000 on PyPI
pfzyProvides fuzzy string matching with match…
permissive · top 5,000 on PyPI
fuzzywuzzyFuzzyWuzzy performs fuzzy string matching using…
copyleft · top 5,000 on PyPI
ngramExtends Python's set class to perform fuzzy…
copyleft · top 15,000 on PyPI
praat-parselmouthParselmouth provides a Pythonic interface to…
copyleft · top 15,000 on PyPI