xunfei-clj icon indicating copy to clipboard operation
xunfei-clj copied to clipboard

Support Emacs with a minor mode

Open stardiviner opened this issue 8 years ago • 1 comments

我之前看过一个用Python还是啥的声音控制Emacs编程的,在youtube上。这是链接 https://www.youtube.com/watch?v=8SkdfdXWYaI 。还有博文的链接 http://puntoblogspot.blogspot.com/2013/03/keyboardless-programming.html 。 我记录在Org-mode里面,都很久了。觉得很厉害。不明觉厉。但是由于安装,使用,等等都非常麻烦。尤其是语音识别在Linux上没啥特别好的软件。所以就放弃了。作者的方案安装起来也是很繁琐。很讨厌繁琐的安装。

最好这个Emacs minor mode能够提供一个简单的借口,比如 xunfei-start. 然后后台启动所有必须的东西,检查所有的东西,比如麦克风,等等之类的。不知道Emacs有没有这个检查。就算没有,也能通过shell返回检查结果。虽然这样有点粗糙。(个人观点)。如果需要下载讯飞SDK包,那么是否可以在Emacs包里面提供命令去自动下载安装? 以及一个核心借口 比如 xunfei-voice 这个接口用来被调用,比如用来翻译语音成文字,或者接受命令,将命令转发给其他程序。或者是将文字发送给这个API,让它读出来。

BTW:

  • 问一下这个讯飞SDK是离线的还是需要连接网络去分析语音的?
  • 看上去这个包是必须在Clojure上运行,那么它应该必须启动。怎么伴随CIDER启动呢?我通常会随Emacs启动自动启动一个CIDER REPL session,给Org-mode Babel用。对于伴随CIDER启动,我有一个解决方案。是我自己在用的。
(defun my/cider-repl-eval (input)
    "Execute Clojure `INPUT' in CIDER REPL.

Usage: (my/cider-repl-eval \"\(clojure expr\)\")"
    (notifications-notify
     :title "CIDER nREPL evaluation starting."
     :body input)
    (cider-interactive-eval input
                            #'(lambda (event)
                                (notifications-notify
                                 :title "CIDER form evaluation finished.")))
    (sit-for 5)
    )

(add-hook 'cider-connected-hook
            #'(lambda ()
                (sit-for 10)
                (my/cider-repl-eval "(import [java.io.File])") ; import Java object static methods like `.getCanonicalFile'.
                (my/cider-repl-eval "(use '(incanter core stats datasets charts io pdf))")
                ) t)

stardiviner avatar Jul 31 '17 23:07 stardiviner

@stardiviner 👍

xlisp avatar Aug 01 '17 01:08 xlisp