|
Download README.md from androiddrew/g2p-en-decoder-pytorch: direct link, hf CLI and curl.
- Browser
- Download file 2.35 kB
-
https://huggingface.co/androiddrew/g2p-en-decoder-pytorch/resolve/main/README.md
- Command line
-
hf download hf://androiddrew/g2p-en-decoder-pytorch/README.md
-
curl -L -o README.md https://huggingface.co/androiddrew/g2p-en-decoder-pytorch/resolve/main/README.md
2.35 kB
| license: apache-2.0 | |
| library_name: naptrap | |
| language: | |
| - en | |
| pipeline_tag: feature-extraction | |
| tags: | |
| - grapheme-to-phoneme | |
| - g2p | |
| - keyword-spotting | |
| - wake-word | |
| - pytorch | |
| - safetensors | |
| # g2p_en decoder: keyword text features for naptrap | |
| These are the weights of the [g2p_en](https://github.com/Kyubyong/g2p) | |
| grapheme-to-phoneme model (Kyubyong Park & Jongseok Kim, Apache-2.0, release | |
| 2.1.0), repackaged as safetensors for | |
| [naptrap](https://github.com/androiddrew/naptrap). The values are unchanged. | |
| naptrap does **not** use this model to output phoneme strings. The keyword | |
| models, such as | |
| [`androiddrew/naptrap-phonmatchnet-en`](https://huggingface.co/androiddrew/naptrap-phonmatchnet-en), | |
| were trained on the decoder's **hidden states**. This is the "embedding" path | |
| from the PhonMatchNet reference code: | |
| 1. Normalize the keyword: lowercase it, strip accents, and keep `[a-z']` words. | |
| Numbers must be spelled out. | |
| 2. Encode each word's characters with the grapheme GRU. | |
| 3. Decode greedily (up to 20 steps), keeping each emitted 256-D decoder state. | |
| 4. Join the words with the decoder's `<pad>` embedding as a separator. | |
| The result is a `[positions, 256]` float32 matrix. | |
| > Not affiliated with or endorsed by the g2p_en authors. See `LICENSE` and `NOTICE`. | |
| ## Usage | |
| ```python | |
| from huggingface_hub import snapshot_download | |
| from naptrap import G2PTextEncoder | |
| encoder = G2PTextEncoder.from_pretrained( | |
| snapshot_download("androiddrew/g2p-en-decoder-pytorch", revision="v1") | |
| ) | |
| features = encoder("hey computer") # torch.float32 [positions, 256] | |
| ``` | |
| ## Accuracy of the PyTorch port | |
| We compared naptrap's PyTorch implementation with the original NumPy | |
| `G2p.embedding()` on 545 keywords. They included Speech Commands words, wake | |
| phrases, words with apostrophes and accents, 350 random CMUdict words and 150 | |
| random multi-word phrases. Every output length matched, and the maximum | |
| absolute difference was **4.6e-6**. | |
| ## Limitations | |
| The model was trained on CMUdict pronunciations of American English words. | |
| Unusual names, brand names and non-English words get its best-guess | |
| pronunciation, which may not match how people say them. naptrap does not use | |
| the dictionary-lookup, homograph or number-expansion steps of the g2p_en | |
| package. | |
| `conversion/convert.py` reproduces `model.safetensors` from the g2p_en 2.1.0 | |
| wheel. | |