-- 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:
--
--
-- - 2 -> 102
-- - 1 -> 101 0 -> 100
--
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