Until now, I could use my own TTS system, here is my code, maybe this will help someone?
(use '[speech-synthesis.say :as say]) (use '[clojure.java.shell :only [sh]]) (defn festival [x](sh "sh" "-c" (str "echo " x " | festival --tts"))) (defn espeak [x] (sh "espeak" x)) (defn mac-say[x] (sh "say" x)) (defn check-if-installed[x] (:exit(sh "sh" "-c" (str "command -v " x " >/dev/null 2>&1 || { echo >&2 \"\"; exit 1; }")))) (defn engine-check[] (def engines (conj["Google" ] (if (= (check-if-installed "festival") 0) "Festival" ) (if (= (check-if-installed "espeak") 0) "ESpeak" ) (if (= (check-if-installed "say") 0) "Say" ))) ;; Say is the Apple say command (remove nil? engines)) (defn set-engine [eng](cond (= eng "Google")(def speak say) (= eng "Festival" )(def speak festival) (= eng "ESpeak") (def speak espeak) (= eng "Say") (def speak mac-say)))
then to use
(set-engine "Festival") ;; set the engine (speak "Hello, I can talk") ;; speak your text
zeitue
source share