@@ -14,6 +14,7 @@ import Control.Exception
14
14
import System.IO.Error
15
15
import System.Environment
16
16
import System.Info (os )
17
+ import System.Environment.Executable
17
18
18
19
import Language
19
20
@@ -40,22 +41,22 @@ espeak :: Language -> FilePath -> String -> (String, [String])
40
41
espeak lang tmp txt =
41
42
(" espeak" , [" -v" , l, " -w" , tmp, " -s" , " 120" , txt])
42
43
where
43
- l = case lang of
44
+ l = case lang of
44
45
Language s -> s
45
46
46
- espeak_contrib :: Language -> FilePath -> String -> (String , [String ])
47
- espeak_contrib lang tmp txt =
48
- (" ./ contrib/ espeak" , [" -v" , l, " -w" , tmp, " -s" , " 120" , txt])
47
+ espeak_contrib :: FilePath -> Language -> FilePath -> String -> (String , [String ])
48
+ espeak_contrib myDir lang tmp txt =
49
+ (myDir </> " contrib" </> " espeak" , [" -v" , l, " -w" , tmp, " -s" , " 120" , txt])
49
50
where
50
- l = case lang of
51
+ l = case lang of
51
52
Language s -> s
52
53
53
54
54
- engines :: Language -> FilePath -> String -> [(String , [String ])]
55
- engines l ft txt =
55
+ engines :: FilePath -> Language -> FilePath -> String -> [(String , [String ])]
56
+ engines myDir l ft txt =
56
57
[ pico l ft txt
57
58
, espeak l ft txt
58
- , espeak_contrib l ft txt
59
+ , espeak_contrib myDir l ft txt
59
60
]
60
61
61
62
oggenc :: FilePath -> FilePath -> (String , [String ])
@@ -68,7 +69,7 @@ encoders :: FilePath -> FilePath -> [(String, [String])]
68
69
encoders from to =
69
70
[ oggenc from to
70
71
, oggenc_contrib from to
71
- ]
72
+ ]
72
73
73
74
tryPrograms [] e = e
74
75
tryPrograms ((c,args): es) e = do
@@ -100,7 +101,9 @@ textToSpeech lang txt = do
100
101
(tmp,h) <- openTempFile (takeDirectory fn) (takeBaseName fn <.> " wav" )
101
102
hClose h
102
103
103
- tryPrograms (engines lang tmp txt) $ do
104
+ (myDir,_) <- splitExecutablePath
105
+
106
+ tryPrograms (engines myDir lang tmp txt) $ do
104
107
putStrLn " No suitable text-to-speech-engine found."
105
108
putStrLn " Do you have libttspico-utils or espeak installed?"
106
109
0 commit comments