In this case, the word "kelp" is composed of the phonemes "K", "EH1", "L" and "P". The possible phonemes are listed in the following tables:KELP K EH1 L P
Syllable | Example |
---|---|
AA | resolve |
AE | rat |
AH | forgettable |
AO | talk |
AW | abound |
AY | rise |
EH | hair |
ER | under |
EY | pray |
IH | fin |
IY | knees |
OW | cow |
OY | foil |
UH | wood |
UW | foo |
Non-Syllable | Example |
---|---|
B | ball |
CH | achieve |
D | dog |
DH | worthy |
F | frog |
G | frog |
HH | hat |
JH | age |
K | break |
L | lamp |
M | lamp |
N | not |
NG | thing |
P | pray |
R | ray |
S | said |
SH | shed |
T | tread |
TH | thread |
V | archive |
W | way |
Y | acute |
Z | rains |
ZH | illusion |
However, you'll notice KELP's EH syllable is followed by a 1. The 1 signifies EH is the primary stressed syllable of KELP. And, as expected, there can be only one primary stress in a particular word. Most syllables are followed by a 0, which signifies no stress. This is most common, and a word can have any number of un-stressed syllables. Occasionally words will also have a secondary stress, indicated by a 2. As with primary stress, words can only have a single secondary stress.
New words are not added to the original cmudict file. Instead, words are added to the cmudict.patch file and that file is merged with the original to generate the full list of words. And, just as importantly, words must be added in alphabetical order. You see, by having both the cmudict and cmudict.patch files be ordered alphabetically, they can be combined into a single, larger file (also sorted alphabetically) in a very short amount of time. And, by knowing the individual words are pre-sorted during the install process, the Rhyming Dictionary can take a lot less time getting its database files compiled.
to be added to the cmudict.patch file. Similarly, many plural forms of words already present merely have an "S" on the end - requiring only the addition of the Z phoneme at the end of the pronunciation. Also quite common in english is the use of compound words, such as OCEANFRONT. For these, combining the pronunciations of both words is typically all that is required, except that one of the individual words must have a primary stress and the other will have either a secondary stress or no stress.WHELP W EH1 L P
Ultimately, the process of building pronuncations is tedious. But, each added word will automatically rhyme correctly and have the correct syllable count.
in the same directory with the Rhyming Dictionary source code. This yields the pronounce executable binary and the pronounce.db and fullmultiple.db database files. These database files are necessary because none of the typical Rhyming Dictionary source files contain the full pronunciation of a word (thus requiring the pronounce.db file) and the typical multiple.db file is stripped of multiple pronunciations yielding identical rhymes (hence the fullmultiple.db file).make pronounce
To use pronounce, type:
This should result in a command prompt similar to the Rhyming Dictionary's interactive mode. From there, typing in a word will display all of its pronunciations. For example:pronounce pronounce.db fullmultiple.db
This data can then, hopefully, be used to generate pronuncations for new words to be added to the cmudict.patch file.PRONOUNCE> dictionary D IH1 K SH AH0 N EH2 R IY0 PRONOUNCE>
Then, before a cmudict.patch file is used, you should use:
This will check the dictionary files for invalid phonemes, invalid ordering or any other error that might cause the Rhyming Dictionary to choke.make verify