7

¿Qué bibliotecas de reconocimiento de voz y palabra están disponibles para Clojure? Hasta aquí he encontrado¿Qué bibliotecas de reconocimiento de texto a voz y voz están disponibles para Clojure?

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

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

ambos usan Google y por lo tanto dependen de la web.

Busco los que no dependen de la Internet para trabajar

+2

No sé nada que apoye directamente a clojure, pero por lo general hay un motor de síntesis o reconocimiento de voz para una plataforma y luego las personas compilan intefaces para los idiomas que eligen. ¿Quizás necesites una interfaz Clojure para CMU SPhinx? Puede encontrar esta respuesta como un punto de partida útil: http://stackoverflow.com/a/6351055/90236 –

+0

Y con respecto a las soluciones TTS basadas en Java, esta respuesta podría ser útil: http://stackoverflow.com/questions/143390/ java-text-to-speech-engines-overview –

Respuesta

6

Creo que este es un territorio prácticamente inexplorado por lo que las bibliotecas existentes van Clojure.

Probablemente su mejor opción sea mirar las muchas bibliotecas de reconocimiento de voz de Java disponibles y usarlas de Clojure: van a ser mucho más maduras y capaces en este punto.

Es posible que desee mirar:

El uso de bibliotecas Java de Clojure es muy fácil - por lo general es tan simple como la importación de las clases correctas y haciendo (.someMethod someObject arg1 arg2)

Si crea un contenedor Clojure para un reconocedor de voz, ¡por favor, contrátelo a la comunidad! Sé que bastantes personas (yo incluido) estarían interesadas en hacer algún trabajo relacionado con el habla en Clojure.

1

Hasta ahora he podido usar el TTS del sistema nativo aquí está mi código, ¿Quizás esto ayude a alguien?

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

entonces para usar

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

he utilizado eSpeak a través de una biblioteca de Java JNI escribí para generar el habla de texto en clojure. La biblioteca básica está disponible en github. Lamentablemente, por razones no relacionadas, por el momento me he visto obligado a centrarme en un problema diferente. Sin embargo, envíenme un mensaje si desea usar mi biblioteca para interactuar con espeak de clojure. Le puedo enviar algunos ejemplos de cómo lo usé.