7

quali librerie di riconoscimento vocale e vocale sono disponibili per Clojure? Finora ho trovatoquali librerie di riconoscimento vocale e vocale sono disponibili per Clojure?

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

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

entrambi questi utilizzano Google e quindi dipendono del web.

Sto cercando quelli che non dipendono da Internet per lavorare

+2

Non so nulla che supporti direttamente il clojure, ma in genere esiste un riconoscimento vocale o un motore di sintesi per una piattaforma e quindi le persone costruiscono gli intefacenti per i loro linguaggi di scelta. Forse hai bisogno di un'interfaccia Clojure per CMU SPhinx? Potresti trovare questa risposta come un utile punto di partenza: http://stackoverflow.com/a/6351055/90236 –

+0

E per quanto riguarda le soluzioni TTS basate su Java, questa risposta potrebbe essere utile: http://stackoverflow.com/questions/143390/ java-text-to-speech-motori-panoramica –

risposta

6

Penso che questo sia un territorio praticamente inesplorato per quanto riguarda le biblioteche Clojure esistenti vanno.

La soluzione migliore è probabilmente quella di esaminare le numerose librerie di riconoscimento vocale Java disponibili e usarle da Clojure: saranno molto più mature e capaci a questo punto.

Si consiglia di guardare:

Utilizzando librerie Java da Clojure è estremamente facile - in genere è così semplice come importare le classi di destra e facendo (.someMethod someObject arg1 arg2)

Se crei un wrapper Clojure per un riconoscitore vocale, per favore, contribuisci di nuovo alla comunità! So che un bel po 'di persone (me compreso) sarebbero interessate a fare alcuni lavori sul linguaggio in Clojure.

1

Finora sono stato in grado di utilizzare il TTS del sistema nativo qui è il mio codice, forse questo aiuterà qualcuno?

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

quindi di utilizzare

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

ho usato Espeak tramite una libreria Java JNI ho scritto per generare discorso dal testo in clojure. La libreria di base è disponibile su github. Sfortunatamente, per motivi non correlati, sono stato costretto a focalizzare la mia attenzione su un problema diverso per il momento. Comunque, mandami un messaggio se vuoi usare la mia libreria per interfacciare con espeak di clojure - Posso inviarti alcuni esempi di come l'ho usato.