7

Welche Text-zu-Sprache- und Spracherkennungsbibliotheken sind für Clojure verfügbar? Bisher habe ichWelche Text-zu-Sprache- und Spracherkennungsbibliotheken stehen für Clojure zur Verfügung?

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

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

diese beiden Google verwenden und somit abhängig von dem Internet.

Ich suche diejenigen, die im Internet hängen nicht

+2

Ich weiß nichts, was direkt Clojure unterstützt, aber normalerweise gibt es eine Spracherkennung oder Synthese-Engine für eine Plattform und dann Leute bauen Schnittstellen für ihre Sprachen der Wahl. Vielleicht brauchen Sie eine Clojure-Schnittstelle für CMU SPhinx? Vielleicht finden Sie diese Antwort einen hilfreichen Ausgangspunkt - http://Stackoverflow.com/a/6351055/90236 –

+0

Und in Bezug auf die Java-basierte TTS-Lösungen, könnte diese Antwort hilfreich sein - http://StackOverflow.com/Questions/143390/ Java-Text-zu-Sprache-Engines-Übersicht –

Antwort

6

arbeiten ich denke, das ist ein ziemlich unerforschtes Gebiet ist so weit wie bestehende Clojure Bibliotheken gehen.

Ihre beste Wette ist wahrscheinlich, die vielen verfügbaren Java-Spracherkennungsbibliotheken zu betrachten und sie von Clojure zu verwenden - sie werden zu diesem Zeitpunkt viel ausgereifter und fähiger sein.

Sie können wollen, betrachten:

Verwendung von Java-Bibliotheken von Clojure ist extrem einfach - es in der Regel so einfach ist, die richtigen Klassen wie den Import und tun (.someMethod someObject arg1 arg2)

Wenn Sie einen Clojure-Wrapper für einen Spracherkenner erstellen, tragen Sie ihn bitte in die Community ein! Ich weiß, dass einige Leute (mich selbst eingeschlossen) daran interessiert wären, in Clojure etwas mit Sprache zu tun.

1

Bisher konnte ich das TTS des nativen Systems verwenden hier ist mein Code, vielleicht wird dies jemandem helfen?

(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))) 

dann

(set-engine "Festival") ;; set the engine 
(speak "Hello, I can talk") ;; speak your text 
1

Ich habe espeak über eine JNI Java-Bibliothek verwendet, um verwende ich Sprache aus Text in clojure erzeugen schrieb. Die Basisbibliothek ist auf GitHub verfügbar. Leider bin ich aus anderen Gründen gezwungen, mich zunächst auf ein anderes Problem zu konzentrieren. Bitte senden Sie mir eine Nachricht, wenn Sie meine Bibliothek verwenden möchten, um mit espeak von clojure zu interagieren - ich kann Ihnen einige Beispiele dafür schicken, wie ich es benutzt habe.