Package com.sun.speech.freetts.en.us

# Class CMULexicon

java.lang.Object
com.sun.speech.freetts.lexicon.LexiconImpl
com.sun.speech.freetts.en.us.CMULexicon

All Implemented Interfaces:
  `Lexicon`

Direct Known Subclasses:
  `CMUTimeLexicon`

public class CMULexicon extends LexiconImpl
Provides a CMU lexicon-specific implementation of a Lexicon that is stored in a text file.

## Field Summary

### Fields inherited from class com.sun.speech.freetts.lexicon.LexiconImpl

`tokenizeOnLoad, tokenizeOnLookup`

## Constructor Summary

Constructors
Constructor
Description
`CMULexicon()`
Creates the default CMU Lexicon which is a binary lexicon
`CMULexicon(String basename)`
Creates the CMU Lexicon which is a binary lexicon
`CMULexicon(String basename, boolean useBinaryIO)`
`CMULexicon(URL compiledURL, URL addendaURL, URL letterToSoundURL, boolean binary)`
Creates a CMULexicon based upon the given compiled and addenda DBs and the given letter to sound rules

## Method Summary

Modifier and Type
Method
Description
`static CMULexicon`
`getInstance(boolean useBinaryIO)`
Get the CMULexicon.
`static CMULexicon`
`getInstance(String basename, boolean useBinaryIO)`
Get the CMULexicon.
`protected static int`
`getSonority(String phone)`
Determines the sonority for the given phone.
`protected static boolean`
`hasVowel(String[] phones, int index)`
Determines if there is a vowel in the remainder of the array, starting at the given index.
`protected static boolean`
`hasVowel(List phones)`
Determines if there is a vowel in given list of phones.
`protected static boolean`
`isSilence(String phone)`
Determines if the given phone represents a silent phone.
`boolean`
`isSyllableBoundary(List syllablePhones, String[] wordPhones, int currentWordPhone)`
Determines if the currentPhone represents a new syllable boundary.
`protected static boolean`
`isVowel(String phone)`
Determines if the given phone is a vowel
`static void`
`main(String[] args)`
Provides test code for the CMULexicon.

### Methods inherited from class com.sun.speech.freetts.lexicon.LexiconImpl

`addAddendum, compare, createLexicon, dumpBinary, fixPartOfSpeech, getPhones, getPhones, getPhones, getPhones, getPhones, isLoaded, load, loadTextLexicon, parseAndAdd, removeAddendum, setLexiconParameters`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### CMULexicon

public CMULexicon(URL compiledURL, URL addendaURL, URL letterToSoundURL, boolean binary)
Creates a CMULexicon based upon the given compiled and addenda DBs and the given letter to sound rules

Parameters:
  `compiledURL` - the compiled database is loaded from here
  `addendaURL` - the database addenda is loaded from here
  `letterToSoundURL` - the letter to sound rules are loaded from here
  `binary` - if `true` the input data are loaded as binary ; otherwise if `false` the input data are loaded as text.

### CMULexicon

public CMULexicon()
Creates the default CMU Lexicon which is a binary lexicon

### CMULexicon

public CMULexicon(String basename)
Creates the CMU Lexicon which is a binary lexicon

Parameters:
  `basename` - the basename for the lexicon.

### CMULexicon

public CMULexicon(String basename, boolean useBinaryIO)

## Method Details

### getInstance

public static CMULexicon getInstance(boolean useBinaryIO) throws IOException
Get the CMULexicon.

Parameters:
  `useBinaryIO` - if true use binary IO to load DB
Throws:
  `IOException` - if problems occurred while reading the data

### getInstance

public static CMULexicon getInstance(String basename, boolean useBinaryIO) throws IOException
Get the CMULexicon.

Parameters:
  `useBinaryIO` - if true use binary IO to load DB
Throws:
  `IOException` - if problems occurred while reading the data

### isSyllableBoundary

public boolean isSyllableBoundary(List syllablePhones, String[] wordPhones, int currentWordPhone)
Determines if the currentPhone represents a new syllable boundary.

Parameters:
  `syllablePhones` - the phones in the current syllable so far
  `wordPhones` - the phones for the whole word
  `currentWordPhone` - the word phone in question
Returns:
  `true` if the word phone in question is on a syllable boundary; otherwise `false`.

### isSilence

protected static boolean isSilence(String phone)
Determines if the given phone represents a silent phone.

Parameters:
  `phone` - the phone to test
Returns:
  `true` if the phone represents a silent phone; otherwise `false`.

### hasVowel

protected static boolean hasVowel(String[] phones, int index)
Determines if there is a vowel in the remainder of the array, starting at the given index.

Parameters:
  `phones` - the set of phones to check
  `index` - start checking at this index
Returns:
  `true` if a vowel is found; otherwise `false`.

### hasVowel

protected static boolean hasVowel(List phones)
Determines if there is a vowel in given list of phones.

Parameters:
  `phones` - the list of phones
Returns:
  `true` if a vowel is found; otherwise `false`.

### isVowel

protected static boolean isVowel(String phone)
Determines if the given phone is a vowel

Parameters:
  `phone` - the phone to test
Returns:
  `true` if phone is a vowel otherwise `false`.

### getSonority

protected static int getSonority(String phone)
Determines the sonority for the given phone.

Parameters:
  `phone` - the phone of interest
Returns:
  an integer that classifies phone transitions

### main

public static void main(String[] args)
Provides test code for the CMULexicon.
Usage:

      com.sun.speech.freetts.en.us.CMULexicon [options]

     Where options is any combination of:

     -src path
     -dest path
     -generate_binary [base_name]
     -compare
     -showtimes