-- Initial pronounce.cabal generated by cabal init. For further -- documentation, see http://haskell.org/cabal/users-guide/ -- The name of the package. name: pronounce -- The package version. See the Haskell package versioning policy (PVP) -- for standards guiding when and how versions should be incremented. -- https://wiki.haskell.org/Package_versioning_policy -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 1.2.0.0 -- A short (one-line) description of the package. synopsis: A library for interfacing with the CMU Pronouncing Dictionary -- A longer description of the package. description: Text.Pronounce is a Haskell library for interfacing and . It is based off of Allison Parrish's 'pronouncing', and it exports much of the same functionality. The underlying data structure that I used for representing the dictionary was a @Map@ from entries to lists of their possible phones as represented in the CMU dict. Many functions rely on access to the CMU dict and may return more than one result (more on the layout of the cmu dict later), so I decided to encompass this underlying state of the dictionary by using the @ReaderT@ Monad Transformer with the @List@ Monad embedded inside it. . In order to properly use this library, a basic understanding of the CMU Pronouncing Dictionary is assumed. Basically, the dictionary maps English words to their pronunciations transcribed using . This transcription reduces each word to a sequence of phones (vowel/consonant sounds) with stresses indicated by numbers at the ends of vowels. In addition, since some words can have multiple pronunciations, there can be multiple entries for a word: . > CONSOLE K AH0 N S OW1 L > CONSOLE(1) K AA1 N S OW0 L . Most users need not worry about the actual syntax of the cmu dict; however, and should merely note that such an entry in the @CMUdict@ would consist of the mapping from the @Entry@ \"CONSOLE\" to some @[Phones]@, a list of possible sequences of phones for this word (stresses included). For a better description of the actual cmu pronouncing dictionary, I recommend visiting or simply looking through . . When working with this library, the default setting is to load the dictionary from an included binary file, but the user has the option to parse the dictionary from a unicode text file, or encode the text file into binary themselves. For this last purpose, I included the script I originally used to encode the dictionary into a binary in the @examples@ folder. . Finally, I would like to note that @Text.Pronounce.ParseDict@ operates on utf8 encoded files, due to compatibility with @Text@, which is utf encoded, despite the fact the original CMU Pronouncing Dictionary uses latin1 encoding. Because of this, if the user wants to use a version of the CMU Dictionary other than the included one, they must change to encoding to utf before parsing. -- URL for the project homepage or repository. homepage: https://github.com/buonuomo/Text.Pronounce -- The license under which the package is released. license: BSD3 -- The file containing the license text. license-file: LICENSE -- The package author(s). author: Noah Goodman -- An email address to which users can send suggestions, bug reports, and -- patches. maintainer: ngoodman@uchicago.edu -- A copyright notice. -- copyright: category: Text build-type: Simple -- Extra files to be distributed with the package, such as examples or a -- README. extra-source-files: ChangeLog.md README.md examples/*.hs data-files: cmuutf, cmubin -- Constraint on the version of Cabal needed to build this package. cabal-version: >=1.10 source-repository head type: git location: https://github.com/buonuomo/Text.Pronounce.git library -- Modules exported by the library. exposed-modules: Text.Pronounce, Text.Pronounce.ParseDict -- Modules included in this library but not exported. other-modules: Paths_pronounce -- LANGUAGE extensions used by modules in this package. other-extensions: OverloadedStrings, TypeSynonymInstances, FlexibleInstances -- Other library packages from which modules are imported. build-depends: base >=4.10 && <4.12, mtl >=2.2 && <2.3, text >=1.2 && <1.3, containers >=0.5 && <0.6, filepath >=1.4 && <1.5, binary >=0.8.4 && <0.9, safe >=0.3 && <0.4 -- Directories containing source files. -- hs-source-dirs: -- Base language which the package is written in. default-language: Haskell2010