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.
  • 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