-- 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 modules that do not
-- use Int8 after ugrading the
-- phonetic-languages-simplified-examples-array to the Int8-based
-- functionality are planned to be moved to the new package.
@package ukrainian-phonetics-basic-array
@version 0.5.2.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 Melodics.Ukrainian.ArrInt8
-- | 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. UZ 'A' D дз
-- (plain) 8 UZ 'A' K дз (palatalized) 9 UZ 'B' D ж (plain) 10 UZ 'B' K ж
-- (semi-palatalized) 11 UZ 'C' S й 27 UZ 'D' N сь 54 UZ 'E' L ч (plain)
-- 39 UZ 'E' M ч (semi-palatalized) 40 UZ 'F' L ш (plain) 41 UZ 'F' M ш
-- (semi-palatalized) 42 G 55 H 56 I 57 J 58 K 59 L 60 M 61 N нт 62 O ст
-- 63 P ть 64 Q дзь 12 R зь 13 S нь 65 T дь 14 UZ 'a' W а 1 UZ 'b' D б
-- (plain) 15 UZ 'b' K б (semi-palatalized) 16 UZ 'c' D ц (plain) 38 UZ
-- 'd' D д (plain) 17 UZ 'd' K д (palatalized) 18 UZ 'e' W е 2 UZ 'f' L ф
-- (plain) 43 UZ 'f' M ф (semi-palatalized) 44 UZ 'g' D ґ (plain) 19 UZ
-- 'g' K ґ (semi-palatalized) 20 UZ 'h' D г (plain) 21 UZ 'h' K г
-- (semi-palatalized) 22 UZ 'i' W і 6 UZ 'j' D дж (plain) 23 UZ 'j' K дж
-- (palatalized) 24 UZ 'k' L к (plain) 45 UZ 'k' M к (semi-palatalized)
-- 46 UZ 'l' S л (plain) 28 UZ 'l' O л (palatalized) 29 UZ 'm' S м
-- (plain) 30 UZ 'm' O м (semi-palatalized) 31 UZ 'n' S н (plain) 32 UZ
-- 'n' O н (palatalized) 33 UZ 'o' W о 3 UZ 'p' L п (plain) 47 UZ 'p' M п
-- (semi-palatalized) 48 UZ 'q' E ь 7 UZ 'r' S р (plain) 34 UZ 'r' O р
-- (palatalized) 35 UZ 's' L с (plain) 49 UZ 't' L т (plain) 50 UZ 't' M
-- т (palatalized) 51 UZ 'u' W у 4 UZ 'v' S в (plain) 36 UZ 'v' O в
-- (semi-palatalized) 37 UZ 'w' N ць 66 UZ 'x' L х (plain) 52 UZ 'x' M х
-- (semi-palatalized) 53 UZ 'y' W и 5 UZ 'z' D з (plain) 25 UZ 'z' K з
-- (palatalized) 26
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. 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 Languages.Phonetic.Ukrainian.Syllable.Double.ArrInt8
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 Languages.Phonetic.Ukrainian.Syllable.Double.ArrInt8.SyllableDurations4 Melodics.Ukrainian.ArrInt8.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 Languages.Phonetic.Ukrainian.Syllable.ArrInt8
-- | 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.
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
-- | 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]]