哪些文本到语音和语音识别库可用于Clojure?到目前为止,我发现
https://github.com/klutometis/speech-recognition
https://github.com/klutometis/speech-synthesis
两者都使用谷歌,因此依赖于网络。
我正在寻找不依赖互联网工作的人
现有的Clojure库而言,这是一个几乎未开发的领域。
你最好的选择可能是查看许多可用的Java语音识别库,并从Clojure使用它们 - 在这一点上,它们将更加成熟和有能力。
您可能需要查看:
- http://cmusphinx.sourceforge.net/sphinx4/
使用Clojure的Java库非常简单 - 它通常就像导入正确的类并执行(.someMethod someObject arg1 arg2)
一样简单
如果您确实为语音识别器创建了 Clojure 包装器,请将其贡献给社区!我知道很多人(包括我自己)会对在Clojure中做一些与演讲相关的工作感兴趣。
到目前为止,我已经能够使用本机系统的TTS,这是我的代码,也许这会帮助某人?
(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)))
然后使用
(set-engine "Festival") ;; set the engine
(speak "Hello, I can talk") ;; speak your text
我通过我编写的 JNI Java 库使用 espeak 从 clojure 中的文本生成语音。基本库可在 github 上找到。不幸的是,由于不相关的原因,我被迫暂时将注意力放在另一个问题上。但是,如果您想使用我的库与 clojure 的 espeak 接口,请给我留言 - 我可以向您发送一些我如何使用它的示例。