Class 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 Summary

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

      • CMULexicon

        public CMULexicon​(java.net.URL compiledURL,
                          java.net.URL addendaURL,
                          java.net.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​(java.lang.String basename)
        Creates the CMU Lexicon which is a binary lexicon
        Parameters:
        basename - the basename for the lexicon.
      • CMULexicon

        public CMULexicon​(java.lang.String basename,
                          boolean useBinaryIO)
    • Method Detail

      • getInstance

        public static CMULexicon getInstance​(boolean useBinaryIO)
                                      throws java.io.IOException
        Get the CMULexicon.
        Parameters:
        useBinaryIO - if true use binary IO to load DB
        Throws:
        java.io.IOException - if problems occurred while reading the data
      • getInstance

        public static CMULexicon getInstance​(java.lang.String basename,
                                             boolean useBinaryIO)
                                      throws java.io.IOException
        Get the CMULexicon.
        Parameters:
        useBinaryIO - if true use binary IO to load DB
        Throws:
        java.io.IOException - if problems occurred while reading the data
      • isSyllableBoundary

        public boolean isSyllableBoundary​(java.util.List syllablePhones,
                                          java.lang.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​(java.lang.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​(java.lang.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​(java.util.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​(java.lang.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​(java.lang.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​(java.lang.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