什么文本语音和语音识别库可用于Clojure?

时间:2012-08-15 21:12:14

标签: clojure speech-recognition libraries text-to-speech speech-synthesis

Clojure可以使用哪些文本语音识别库? 到目前为止我找到了

https://github.com/klutometis/speech-recognition

https://github.com/klutometis/speech-synthesis

这两个都使用Google,因此依赖于网络。

我正在寻找那些不依赖互联网工作的人

3 个答案:

答案 0 :(得分:6)

就现有的Clojure图书馆而言,我认为这是一个非常未开发的领域。

您最好的选择可能是查看许多可用的Java语音识别库并在Clojure中使用它们 - 它们将在这一点上变得更加成熟和强大。

您可能需要查看:

使用Clojure中的Java库非常简单 - 通常就像导入正确的类并执行(.someMethod someObject arg1 arg2)

一样简单

如果您确实为语音识别器创建了Clojure包装器,请将其贡献给社区!我知道很多人(包括我自己)会对在Clojure中做一些与语言相关的工作感兴趣。

答案 1 :(得分:1)

到目前为止,我已经能够使用本机系统的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

答案 2 :(得分:1)

我通过我编写的JNI java库使用espeak来生成clojure中的文本语音。基本库可以在github上找到。不幸的是,由于无关的原因,我不得不暂时将注意力集中在另一个问题上。但是,如果您想使用我的库与来自clojure的espeak接口,请给我留言 - 我可以向您发送一些我如何使用它的例子。