-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A library to work with the basic Ukrainian phonetics and syllable segmentation. -- -- Rewritten from the mmsyn6ukr and mmsyn7s packages. Comparing to the -- ukrainian-phonetics-basic package, all the vector-related -- functionality removed, it also removed from the dependencies and the -- mmsyn2 is changed to mmsyn2-array. Since 0.4.0.0 version switched to -- the more optimized Int8-based functionality. The old modules with -- bytestring dependencies since the 0.6.0.0 version moved to the other -- package ukrainian-phonetics-basic-array-bytestring to reduce the -- actual dependencies for the phonetic languages concerning packages. @package ukrainian-phonetics-basic-array @version 0.7.1.0 -- | Functions provide functionality of a musical instrument synthesizer or -- for Ukrainian speech synthesis especially for poets, translators and -- writers. Is rewritten from the module -- Melodics.ByteString.Ukrainian.Arr for optimization purposes. Phonetic -- material is taken from the : -- -- Solomija Buk, Ján Mačutek, Andrij Rovenchak. Some properties of the -- Ukrainian writing system. [Electronic resource] -- https://arxiv.org/ftp/arxiv/papers/0802/0802.4198.pdf module Phladiprelio.Ukrainian.Melodics -- | Is used to signify the optimization data type of Int8. type Sound8 = Int8 type FlowSound = [Sound8] -- | A full variant of the convertToProperUkrainianI8 function with -- all the elements for the getBFst' function being provided as -- Array Int (data tuple). Can be useful to reduce number -- of calculations in the complex usage scenarios. convertToProperUkrainianI8WithTuples :: Array Int (Int8, Bool) -> Array Int (Int8, Bool) -> Array Int (Int8, Bool) -> Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Int8) -> Array Int (Int8, FlowSound -> Sound8) -> Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> Array Int (Int8, [Int8]) -> Array Int (Char, Int8) -> Array Int (Int8, [Int8]) -> Array Int (Char, Bool) -> Array Int (Char, Bool) -> [Char] -> FlowSound -- | The function that uses the following correspondence between the -- previous data type UZPP2 and the Sound8. See for more -- implementation information: -- https:/oleksandr-zhabenko.github.ioukrhythmicityPhLADiPreLiO.Eng.21.html#ability-to-use-your-own-durations-of-representations-of-sounds-or-phonetic-phenomena -- -- Starting from the version 0.6.0.0: -- -- convertToProperUkrainianI8 :: String -> FlowSound isUkrainianL :: Char -> Bool -- | Can be used to map the Sound8 representation and the -- mmsyn6ukr-array files with some recordings. linkFileNameI8 :: Sound8 -> Char дзT :: Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> FlowSound -> Sound8 жT :: FlowSound -> Sound8 дT :: FlowSound -> Sound8 гT :: FlowSound -> Sound8 зT :: Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> FlowSound -> Sound8 цT :: Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> FlowSound -> Sound8 чT :: FlowSound -> Sound8 шT :: FlowSound -> Sound8 фT :: FlowSound -> Sound8 кT :: FlowSound -> Sound8 пT :: FlowSound -> Sound8 сT :: Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> FlowSound -> Sound8 тT :: Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> FlowSound -> Sound8 хT :: FlowSound -> Sound8 сьT :: FlowSound -> Sound8 нтT :: FlowSound -> Sound8 стT :: FlowSound -> Sound8 тьT :: FlowSound -> Sound8 цьT :: FlowSound -> Sound8 -- | This module works with syllable segmentation in Ukrainian. It is -- rewritten module MMSyn7.Syllable from the mmsyn7s package : -- https://hackage.haskell.org/package/mmsyn7s The information on -- Ukrainian syllable segmentation is taken from the: -- https://msn.khnu.km.ua/pluginfile.php/302375/mod_resource/content/1/%D0%9B.3.%D0%86%D0%86.%20%D0%A1%D0%BA%D0%BB%D0%B0%D0%B4.%D0%9D%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D1%81.pdf module Phladiprelio.Ukrainian.Syllable -- | Function-predicate isVowel1 checks whether its argument is a -- vowel representation in the Sound8 format. isVowel1 :: Sound8 -> Bool -- | Function-predicate isSonorous1 checks whether its argument is a -- sonorous consonant representation in the Sound8 format. isSonorous1 :: Sound8 -> Bool -- | Function-predicate isVoicedC1 checks whether its argument is a -- voiced consonant representation in the Sound8 format. isVoicedC1 :: Sound8 -> Bool -- | Function-predicate isVoiceless1 checks whether its argument -- is a voiceless consonant representation in the Sound8 format. isVoicelessC1 :: Sound8 -> Bool -- | Binary function-predicate isNotVowel2 checks whether its -- arguments are both consonant representations in the Sound8 -- format. Starting from the version 0.6.0.0 variants of either of -- arguments is greater than 99 is also included. isNotVowel2 :: Sound8 -> Sound8 -> Bool -- | Binary function-predicate isNotVowel2' checks whether its -- arguments are both consonant representations in the Sound8 -- format. Starting from the version 0.6.0.0 variants of either of -- arguments is greater than 99 are not included (so its behaviour is -- equivalent to the isNotVowel2 till the 0.5.3.0 version). isNotVowel2' :: Sound8 -> Sound8 -> Bool -- | Function sndGroups converts a Ukrainian word being a list of -- Sound8 to the list of phonetically similar (consonants grouped -- with consonants and each vowel separately) sounds representations in -- Sound8 format. sndGroups :: FlowSound -> [FlowSound] groupSnds :: FlowSound -> [FlowSound] -- | Function divCnsnts is used to divide groups of Ukrainian -- consonants into two-elements lists that later are made belonging to -- different neighbour syllables if the group is between two vowels in a -- word. The group must be not empty, but this is not checked. The -- phonetical information for the proper performance is taken from the: -- https://msn.khnu.km.ua/pluginfile.php/302375/mod_resource/content/1/%D0%9B.3.%D0%86%D0%86.%20%D0%A1%D0%BA%D0%BB%D0%B0%D0%B4.%D0%9D%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D1%81.pdf divCnsnts :: FlowSound -> (FlowSound -> FlowSound, FlowSound -> FlowSound) reSyllableCntnts :: [FlowSound] -> [FlowSound] divVwls :: [FlowSound] -> [FlowSound] createSyllablesUkrS :: String -> [[FlowSound]] -- | Binary function-predicate notEqC checks whether its arguments -- are not the same consonant sound representations (not taking -- palatalization into account). notEqC :: Sound8 -> Sound8 -> Bool -- | Function representProlonged converts duplicated consequent in -- the syllable consonants so that they are represented by just one -- Sound8. After applying the function to the list of -- Sound8 being a syllable all groups of duplicated consequent -- consonants in every syllable are represented with only one -- Sound8 respectively. representProlonged :: FlowSound -> FlowSound showS8 :: Sound8 -> String showFS :: FlowSound -> String -- | Binary function-predicate notEqC checks whether its arguments -- are not the same consonant sound representations (not taking -- palatalization into account). notEqCTup :: Array Int (Int8, Bool) -> Sound8 -> Sound8 -> Bool -- | Function divCnsntsTup is a variant of the divCnsts -- where you can provide the tuple element for getBFst' inside. divCnsntsTup :: Array Int (Int8, Bool) -> FlowSound -> (FlowSound -> FlowSound, FlowSound -> FlowSound) reSyllableCntntsTup :: Array Int (Int8, Bool) -> [FlowSound] -> [FlowSound] createSyllablesUkrSTup :: Array Int (Int8, Bool) -> Array Int (Int8, Bool) -> Array Int (Int8, Bool) -> Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Int8) -> Array Int (Int8, FlowSound -> Sound8) -> Array Int (Int8, Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> Array Int ([Int8], Bool) -> Array Int (Int8, [Int8]) -> Array Int (Char, Int8) -> Array Int (Int8, [Int8]) -> Array Int (Char, Bool) -> Array Int (Char, Bool) -> Array Int (Int8, Bool) -> String -> [[FlowSound]] -- | This module works with syllable segmentation in Ukrainian. Uses -- Double whenever possible. Is inspired by the -- DobutokO.Sound.DIS5G6G module from dobutokO2 package. See: -- 'https://hackage.haskell.org/package/dobutokO2-0.43.0.0/docs/DobutokO-Sound-DIS5G6G.html'. -- The initial Double data are gotten from there. module Phladiprelio.Ukrainian.SyllableDouble s0DuratD1 :: Sound8 -> Double s0DuratD2 :: Sound8 -> Double s0DuratD3 :: Sound8 -> Double s0DuratD4 :: Sound8 -> Double class Eq a => SyllableDurations4 a sDuratsD :: SyllableDurations4 a => a -> Double sDuratsD2 :: SyllableDurations4 a => a -> Double sDuratsD3 :: SyllableDurations4 a => a -> Double sDuratsD4 :: SyllableDurations4 a => a -> Double syllableDurationsGDc :: SyllableDurations4 a => (a -> Double) -> [[[a]]] -> [[Double]] -- | General variant of the syllableDurationsD function. syllableDurationsGD :: (Sound8 -> Double) -> [[[Sound8]]] -> [[Double]] syllableDurationsD :: [[[Sound8]]] -> [[Double]] syllableDurationsD2 :: [[[Sound8]]] -> [[Double]] syllableDurationsD3 :: [[[Sound8]]] -> [[Double]] syllableDurationsD4 :: [[[Sound8]]] -> [[Double]] instance Phladiprelio.Ukrainian.SyllableDouble.SyllableDurations4 Phladiprelio.Ukrainian.Melodics.Sound8