phonetic-languages-phonetics-basics 0.3.4.0 → 0.4.0.0
raw patch · 4 files changed
+307/−10 lines, 4 filesdep +foldable-ixdep +lists-flinesPVP ok
version bump matches the API change (PVP)
Dependencies added: foldable-ix, lists-flines
API changes (from Hackage documentation)
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: LL :: [PairwisePL] -> Int -> PairwiseC
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: PW :: Char -> Int -> [Int] -> PairwisePL
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: answer :: Int -> Int -> PairwiseC -> Double -> [(Int, Int)] -> Double -> Double -> Double -> [Int] -> [Int] -> Array Int Double -> [String] -> [Double] -> [Double] -> String -> String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: answer2 :: Int -> Int -> PairwiseC -> Double -> [(Int, Int)] -> Double -> Double -> Double -> Double -> Double -> Double -> Double -> [Int] -> [Int] -> Array Int Double -> [String] -> [Double] -> [Double] -> String -> String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: charPW :: PairwisePL -> Char
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: constraintsR1 :: Int -> [Double]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: countCharInWords :: [String] -> Char -> [Int]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: createCoeffsObj :: Int -> [String] -> [Double]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: data PairwiseC
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: data PairwisePL
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: dirLine :: Int -> Int -> [String] -> String -> String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: instance GHC.Classes.Eq Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.PairwiseC
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: instance GHC.Classes.Eq Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.PairwisePL
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: instance GHC.Read.Read Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.PairwiseC
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: instance GHC.Read.Read Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.PairwisePL
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: instance GHC.Show.Show Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.PairwiseC
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: instance GHC.Show.Show Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.PairwisePL
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: isCorrectPWC :: PairwiseC -> Bool
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: lengthPW :: PairwisePL -> Int
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: listPW :: PairwisePL -> [Int]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: matrix1Column :: PairwiseC -> [String] -> String -> Char -> [Int]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: matrixLine :: Int -> PairwiseC -> [String] -> String -> String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: maxDurations :: Int -> Double -> [Double]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: maxLine :: String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: minDurations :: Int -> Double -> Double -> Double -> [Int] -> [Int] -> [Double]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: objCoeffsNew :: Int -> [(Int, Int)] -> Array Int Double -> [Double]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: objLine :: Int -> [(Int, Int)] -> Array Int Double -> String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: pairs' :: PairwiseC -> Char -> [Int]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: pairwiseComparings :: Char -> PairwiseC -> [Int] -> [Int]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: pwsC :: PairwiseC -> [PairwisePL]
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: rhsLine :: Int -> Int -> Double -> Double -> Double -> Double -> [Int] -> [Int] -> [Double] -> [Double] -> String
+ Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations: rhsLineG :: [Double] -> [Double] -> [Double] -> String
Files
- ChangeLog.md +7/−1
- Data/Phonetic/Languages/Syllables.hs +7/−6
- Numeric/Wrapper/R/GLPK/Phonetic/Languages/Durations.hs +290/−0
- phonetic-languages-phonetics-basics.cabal +3/−3
ChangeLog.md view
@@ -40,4 +40,10 @@ * Third version revised D. Changed the data types representation in the Data.Phonetic.Languages.Syllables module. Used some special function refactoring to the algebraic data type to represent a complex predicate of the special structure. Some code-improvements. +improvements.++## 0.4.0.0 -- 2021-04-28++* Fourth version. Added a new module Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations to find out the approximations of+the phonetic languages representation element durations. For this added two new lightweight dependencies of lists-flines+and foldable-ix.
Data/Phonetic/Languages/Syllables.hs view
@@ -202,18 +202,19 @@ _ -> Nothing _ -> Nothing -{-| We can think of 'SegmentationPredFunction' in terms of @f (SI fN pN) ks [x_{1},x_{2},...,x_{i},...,x_{fN}]@. Comparing with-'divCnsnts' from the @ukrainian-phonetics-basics-array@ we can postulate that it consists of the following logical terms of+{-| We can think of 'SegmentationPredFunction' in terms of @f ('SI' fN pN) ks [x_{1},x_{2},...,x_{i},...,x_{fN}]@. Comparing with+'divCnsnts' from the @ukrainian-phonetics-basics-array@ we can postulate that it consists of the following logical terms in the symbolic form:-1) 'phoneType' x_{i} `elem` (X{...} = map P ['Int8']) +1) 'phoneType' x_{i} \`'elem'\` (X{...} = 'map' 'P' ['Int8'])+ 2) 'notEqC' ks x_{i} x_{j} (j /= i) combined with the standard logic Boolean operations of '(&&)', '(||)' and 'not'. Further, the 'not' can be transformed into the positive (affirmative) form using the notion of the universal set for the task. This transformation needs that the similar-phonetic phenomenae (e. g. the double sounds -- the prolonged ones) belongs to the one syllable and not to the different ones-(so they are not related to different syllables, but just to the one and the same). Since such assumption is used, we can further-represent the function by the following data type and operations with it, see 'SegmentationPredFData'.+phonetic phenomenae (e. g. the double sounds -- the prolonged ones) belong to the one syllable and not to the different ones+(so they are not related to different syllables, but just to the one and the same). Since such assumption has been used,+we can further represent the function by the following data type and operations with it, see 'SegmentationPredFData'. -} data SegmentationPredFunction = PF (SegmentationInfo1 -> [(Char, Char)] -> [PRS] -> Bool)
+ Numeric/Wrapper/R/GLPK/Phonetic/Languages/Durations.hs view
@@ -0,0 +1,290 @@+{-# LANGUAGE CPP #-}+{-# OPTIONS_HADDOCK show-extensions #-}++{-|+Module : Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations+Copyright : (c) OleksandrZhabenko 2020-2021+License : MIT+Stability : Experimental+Maintainer : olexandr543@yahoo.com+--+Can be used to calculate the durations of the approximations of the phonemes+using some prepared text with its correct (at least mostly) pronunciation.+The prepared text is located in the same directory and contains lines -the+phonetic language word and its duration in seconds separated with whitespace.+The library is intended to use the functionality of the :++1) R programming language https://www.r-project.org/++2) Rglpk library https://cran.r-project.org/web/packages/Rglpk/index.html++3) GNU GLPK library https://www.gnu.org/software/glpk/glpk.html++For more information, please, see the documentation for them.++For the model correctness the js here refers to sorted list of the 'Char' representations of the phonetic language phenomenae.++The length of the 'String' js is refered to as 'lng'::'Int'. The number of 'pairs'' function elements in the lists is refered to+as 'nn'::'Int'. The number of constraints is refered here as 'nc'::'Int'. @nc == nn `quot` 2@.++Is generalized from the Numeric.Wrapper.R.GLPK.Phonetics.Ukrainian.Durations module from+the @r-glpk-phonetic-languages-ukrainian-durations@ package.+-}+++module Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations where++#ifdef __GLASGOW_HASKELL__+#if __GLASGOW_HASKELL__>=710+/* code that applies only to GHC 7.10.* and higher versions */+import GHC.Base (mconcat)+#endif+#endif+import Data.Monoid hiding (mconcat)+import Text.Read+import Data.Maybe+import CaseBi.Arr (getBFstL')+import Data.Foldable (foldl')+import GHC.Arr+import Numeric+import Data.List (intercalate,find,(\\))+import Data.Lists.FLines (newLineEnding)+import Data.Foldable.Ix (findIdx1)+#ifdef __GLASGOW_HASKELL__+#if __GLASGOW_HASKELL__==708+/* code that applies only to GHC 7.8.* */+mconcat = concat+#endif+#endif++createCoeffsObj :: Int -> [String] -> [Double]+createCoeffsObj l xss+ | length xss < l = f (xss `mappend` replicate (l - length xss) "1.0")+ | otherwise = f (take l xss)+ where f = map (\ts -> fromMaybe 1.0 (readMaybe ts::Maybe Double))++countCharInWords :: [String] -> Char -> [Int]+countCharInWords xss x+ | null xss = []+ | otherwise = map (length . filter (== x)) xss++matrix1Column :: PairwiseC -> [String] -> String -> Char -> [Int]+matrix1Column pw xss js x = pairwiseComparings x pw (mconcat [countCharInWords xss x, rs, rs])+ where l = length js+ iX = fromMaybe (-l - 1) . findIdx1 x $ js+ rs = if iX < 0 then [] else mconcat [replicate iX 0, [1], replicate (l - 1 - iX) 0]++pairwiseComparings :: Char -> PairwiseC -> [Int] -> [Int]+pairwiseComparings x y zs = zs `mappend` pairs' y x++{-| A way to encode the pairs of the phonetic language representations that give some additional associations, connetctions+between elements, usually being caused by some similarity or commonality of the pronunciation act for the phenomenae+corresponding to these elements. +All ['Int'] must be equal in 'length' throughout the same namespace and this length is given as 'Int' argument in+the 'PairwisePL'. This 'Int' parameter is @nn@.+-}+data PairwisePL = PW Char Int [Int] deriving (Eq, Read, Show)++lengthPW :: PairwisePL -> Int+lengthPW (PW _ l _) = l++charPW :: PairwisePL -> Char+charPW (PW c _ _) = c++listPW :: PairwisePL -> [Int]+listPW (PW _ _ xs) = xs++data PairwiseC = LL [PairwisePL] Int deriving (Eq, Read, Show)++isCorrectPWC :: PairwiseC -> Bool+isCorrectPWC (LL xs n) = n == minimum (map lengthPW xs)++pwsC :: PairwiseC -> [PairwisePL]+pwsC (LL xs n) = map (\(PW c m ys) -> PW c n . take n $ ys) xs++pairs' :: PairwiseC -> Char -> [Int]+pairs' y@(LL xs n) x+ | isCorrectPWC y = let z = find ((== x) . charPW) . pwsC $ y in+ if isJust z then listPW . fromJust $ z+ else replicate n 0+ | otherwise = error "Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.pairs': Not defined for the arguments. "++-- | Actually @n@ is a 'length' bss.+matrixLine+ :: Int -- ^ The number of 'pairs'' function elements in the lists.+ -> PairwiseC -- ^ Actually the data type value that sets the behaviour of the 'pairs'' function.+ -> [String]+ -> String -- ^ A sorted list of the 'Char' representations of the phonetic language phenomenae.+ -> String+matrixLine nn pw bss js+ | null bss || n <=0 = []+ | otherwise = mconcat ["mat1 <- matrix(c(", intercalate ", " . map show . concatMap + (matrix1Column pw (bss `mappend` bss) js) $ js, "), nrow = ", show (2 * n + 2 * length js + nn), ")", newLineEnding]+ where n = length bss++objLine+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> [(Int,Int)] -- ^ List of pairs of indices that shows how the input data is related to the representation+ -- (which coefficients relates to which representation elements).+ -> Array Int Double -- ^ An array of coefficients.+ -> String+objLine lng xs arr+ | numElements arr >= lng = mconcat ["obj1 <- c(", intercalate ", " . map (\t -> showFFloat Nothing t "") . objCoeffsNew lng xs $ arr,+ ")", newLineEnding]+ | otherwise = error "Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.objLine: Not defined for the short argument. "++{-| A way to reorder the coefficients of the input and the elements representations related to each other.+-}+objCoeffsNew+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> [(Int, Int)] -- ^ List of pairs of indices that shows how the input data is related to the representation+ -- (which coefficients relates to which representation elements).+ -> Array Int Double -- ^ An array of coefficients.+ -> [Double]+objCoeffsNew lng xs arr = let lst = map (\(x,y) -> (x,unsafeAt arr y)) xs in map (getBFstL' 1.0 lst) [0..lng - 1]++maxLine :: String+maxLine = "max1 <- TRUE\n"++dirLine+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> Int -- ^ The number of 'pairs'' function elements in the lists.+ -> [String] -- ^ An argument of the 'matrixLine' function.+ -> String -- ^ A sorted list of the 'Char' representations of the phonetic language phenomenae.+ -> String+dirLine lng nn bss js = mconcat ["dir1 <- c(\"<", g "<" bss, "\", \">", g ">" (bss, map (:[]) js), "\"", h0 lng,+ h (nn `quot` 2), ")", newLineEnding]+ where g xs ys = (intercalate ("\", \"" `mappend` xs) . replicate (length ys) $ "=")+ h n = concat . replicate n $ ", \">=\", \"<=\""+ h0 n = concat . replicate n $ ", \"<=\""++rhsLineG :: [Double] -> [Double] -> [Double] -> String+rhsLineG zs xs ys = mconcat ["rhs1 <- c(" , f (mconcat [xs , ys , zs]) , ")", newLineEnding]+ where f ts = (intercalate ", " . map (\t -> showFFloat Nothing t "") $ ts)++rhsLine+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> Int -- ^ The number of 'pairs'' function elements in the lists.+ -> Double -- ^ Maximum duration of the phonetic language element representation in seconds.+ -> Double -- ^ A minimum positive duration value for some group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. vowels) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for some *special* group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. soft sign representation) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for all other phonetic language representations (usually, some sorts of+ -- phonemes) to set a general (common) behaviour for the set of resulting values.+ -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the some group of representations (e. g. vowels). + -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the special group of representations (e. g. soft sign). + -> [Double]+ -> [Double]+ -> String+rhsLine lng nn mx mn1 mnSpecial mnG xs1 sps1 = rhsLineG . mconcat $ [minDurations lng mn1 mnSpecial mnG xs1 sps1, maxDurations lng mx, constraintsR1 (nn `quot` 2)]++constraintsR1 :: Int -> [Double]+constraintsR1 n = replicate (2 * n) 0.0++minDurations+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> Double -- ^ A minimum positive duration value for some group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. vowels) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for some *special* group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. soft sign representation) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for all other phonetic language representations (usually, some sorts of+ -- phonemes) to set a general (common) behaviour for the set of resulting values.+ -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the some group of representations (e. g. vowels). + -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the special group of representations (e. g. soft sign). + -> [Double]+minDurations lng mn1 mnSpecial mnG xs1 sps1 = map h [0..lng - 1]+ where xs2+ | maximum xs1 <= lng - 1 = filter (>= 0) xs1+ | otherwise = error "Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.objLine: Not defined for these arguments. "+ sps2+ | maximum sps1 <= lng - 1 = filter (>= 0) sps1 \\ xs2+ | otherwise = error "Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations.objLine: Not defined for these arguments. "+ h i+ | i `elem` xs2 = mn1+ | i `elem` sps2 = mnSpecial+ | otherwise = mnG++maxDurations+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> Double -- ^ Maximum duration of the phonetic language element representation in seconds.+ -> [Double]+maxDurations lng mx = replicate lng mx++-- | A variant of the more general 'answer2' where the randomization parameters are used to produce every time being run+-- a new result (e. g. this allows to model accents).+answer+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> Int -- ^ The number of 'pairs'' function elements in the lists.+ -> PairwiseC -- ^ Actually the data type value that sets the behaviour of the 'pairs'' function.+ -> Double -- ^ Maximum duration of the phonetic language element representation in seconds.+ -> [(Int, Int)] -- ^ List of pairs of indices that shows how the input data is related to the representation+ -- (which coefficients relates to which representation elements).+ -> Double -- ^ A minimum positive duration value for some group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. vowels) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for some *special* group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. soft sign representation) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for all other phonetic language representations (usually, some sorts of+ -- phonemes) to set a general (common) behaviour for the set of resulting values.+ -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the some group of representations (e. g. vowels). + -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the special group of representations (e. g. soft sign). + -> Array Int Double -- ^ An array of coefficients.+ -> [String] -- ^ An argument of the 'matrixLine' function.+ -> [Double]+ -> [Double]+ -> String -- ^ A sorted list of the 'Char' representations of the phonetic language phenomenae.+ -> String+answer lng nn pw mx ts = answer2 lng nn pw mx ts (-0.003) 0.003 (-0.0012) 0.0012++answer2+ :: Int -- ^ The length of the 'String' js that is a sorted list of the phonetic language representations as 'Char's that+ -- appears in the file with test words and their spoken durations.+ -> Int -- ^ The number of 'pairs'' function elements in the lists.+ -> PairwiseC -- ^ Actually the data type value that sets the behaviour of the 'pairs'' function.+ -> Double -- ^ Maximum duration of the phonetic language element representation in seconds.+ -> [(Int, Int)] -- ^ List of pairs of indices that shows how the input data is related to the representation+ -- (which coefficients relates to which representation elements).+ -> Double -- ^ A minimum (usually, a negative one) possible random deviation from the computed value to be additionally applied to emulate+ -- 'more natural' behaviour and to get every time while running new sets of values. + -> Double -- ^ A minimum (usually, a positive one) possible random deviation from the computed value to be additionally applied to emulate+ -- 'more natural' behaviour and to get every time while running new sets of values. + -> Double -- ^ A maximum in absolute value (usually, a negative one) possible random deviation from the computed value to be+ -- additionally applied to emulate 'more natural' behaviour and to get every time while running new sets of values. + -> Double -- ^ A maximum in absolute value (usually, a positive one) possible random deviation from the computed value to be+ -- additionally applied to emulate 'more natural' behaviour and to get every time while running new sets of values. + -> Double -- ^ A minimum positive duration value for some group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. vowels) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for some *special* group of phonetic language representation (usually, some sorts of+ -- phonemes, e. g. soft sign representation) to set some peculiar behaviour for the set of resulting values.+ -> Double -- ^ A minimum positive duration value for all other phonetic language representations (usually, some sorts of+ -- phonemes) to set a general (common) behaviour for the set of resulting values.+ -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the some group of representations (e. g. vowels). + -> [Int] -- ^ A list of indices of the phonetic languages representations in their sorted in ascending order sequence that+ -- corresponds to the elements from the special group of representations (e. g. soft sign). + -> Array Int Double -- ^ An array of coefficients.+ -> [String] -- ^ An argument of the 'matrixLine' function.+ -> [Double]+ -> [Double]+ -> String -- ^ A sorted list of the 'Char' representations of the phonetic language phenomenae.+ -> String+answer2 lng nn pw mx ts min1 max1 min2 max2 mn1 mnSpecial mnG xs1 sps1 lsts bss xs ys js = mconcat ["library(\"Rglpk\")",newLineEnding,objLine lng ts lsts,+ matrixLine nn pw bss js,dirLine lng nn bss js, rhsLine lng nn mx mn1 mnSpecial mnG xs1 sps1 xs ys,maxLine,newLineEnding,+ "k <- Rglpk_solve_LP(obj = obj1, mat = mat1, dir = dir1, rhs = rhs1, max = max1)",newLineEnding, "y <- runif(",show lng,+ ", min = ", showFFloat Nothing (-(abs min1)) ", max = ", showFFloat Nothing (abs max1) ")", newLineEnding,+ "if (k$status == 0){k$solution / mean(k$solution)} else {c()}", newLineEnding, "\")}"]++-- read ("SylS {charS=\'k\', phoneType=P 6")::PRS
phonetic-languages-phonetics-basics.cabal view
@@ -3,7 +3,7 @@ -- http://haskell.org/cabal/users-guide/ name: phonetic-languages-phonetics-basics-version: 0.3.4.0+version: 0.4.0.0 synopsis: A library for working with generalized phonetic languages usage. description: There already exists a Ukrainian implementation for the phonetic languages approach published at: https://hackage.haskell.org/package/phonetic-languages-simplified-examples-array. It is optimized for the Ukrainian only and needs to be rewritten for every new language mostly from scratch using it as a template. To avoid this boilerplate, this one is provided. It can be used for different languages and even for music or other fields. homepage: https://hackage.haskell.org/package/phonetic-languages-phonetics-basics@@ -18,10 +18,10 @@ cabal-version: >=1.10 library- exposed-modules: Data.Phonetic.Languages.Undefined, Data.Phonetic.Languages.Base, Data.Phonetic.Languages.Syllables+ exposed-modules: Data.Phonetic.Languages.Undefined, Data.Phonetic.Languages.Base, Data.Phonetic.Languages.Syllables, Numeric.Wrapper.R.GLPK.Phonetic.Languages.Durations -- other-modules: other-extensions: CPP, BangPatterns, UnboxedTuples, MagicHash, MultiParamTypeClasses, FlexibleInstances ghc-options: -funbox-strict-fields -fobject-code- build-depends: base >=4.8 && <4.15, mmsyn2-array >= 0.1.3 && <1, mmsyn5 >= 0.5 && <1+ build-depends: base >=4.8 && <4.15, mmsyn2-array >=0.1.3 && <1, mmsyn5 >=0.5 && <1, lists-flines >=0.1.1 && <1, foldable-ix >=0.2 && <1 -- hs-source-dirs: default-language: Haskell2010