用語音程式設計:不用傷害自己就可保持效率

臘八粥發表於2014-10-29

我喜愛在ExtraHop工作的原因之一就是會議少、大塊大塊的連續開發時間。然而,我很快發現,我不習慣長時間敲程式碼了。我在ExtraHop工作數週後,我的手腕和胳膊不太舒服。這些地方在過去是斷斷續續的不舒服,但是放在以前,限制晚上在家使用電腦足以解決這個問題。不過,這一次不同了。

400x283xTony-ExtraHop
#Tony Grosinger是ExtraHop網路公司的框架工程師。

做為一個剛剛畢業的大學生,我擔心每天的工作活動會引起永久性損傷。我開始研究人類工程學鍵盤和滑鼠,期望找到萬全的解決方式。正如你猜測的,我沒有找到有魔力的方法,我的狀態每況愈下。

這種不適讓我沮喪,我更加擔心,這種傷害將妨礙我在工作和生活上的快速、輕鬆創造和交流。

介紹一種方法

在嘗試、摒棄了一些其它方法之後,ExtraHop的一個同事向我展示了Tavis Rudd的視訊,Rudd用其聲音程式設計。起初,我懷疑這種方法的可靠性和效率。不過,看了視訊之後,我堅信聲音輸入對於程式設計師來說是一種並行的選擇。Rudd患有類似的病症,他已經搜尋了我剛做的所有類似調查,最終認為,再好的鍵盤也不足以解決這種痛苦。

那天晚上,我在網上查詢那些通過聲音程式設計的人,想找到提示和教程。這些人少之又少,很多人斷言這是不現實的。我沒有那麼容易放棄掉,開始鼓搗一個工具包,它支援在Linux機器上通過聲音程式設計。

配置:最難的部分

很快就搞清楚了,Dragon NaturallySpeaking是聽寫軟體中的唯一選擇。他們的產品在語言識別上領先其他人很多,但是他只能執行在Windows或Mac上。不幸的是,我在Wine【注1】上從來沒有成功執行過Dragon NaturallySpeaking,我不得不在Windows虛擬機器上,設定代理到Linux主機的命令。

我在本文將略去一些配置步驟,你可以在我的Github repo找到如何搞定一切的詳細指令。

如果你按照那些指令做了,你現在應該能夠傳送口授和示例命令到你的Linux主機了,不過離程式設計不遠了。我在接下來的兩週裡編寫語法,大部分過程是這樣的:

  • 期望執行一個任務(程式設計、切換視窗等)。
  • 編寫讓我通過聲音實現這個任務的命令。
  • 測試命令,增加相關的命令。
  • 重複。

這個過程進展緩慢,我希望,連結的倉庫幫你避免從頭開始。甚至在用了大概一個月以後,我每天仍然數次調整命令。Tavis Rudd宣稱有2000多個自定義命令,這意味著我必須還有很多工作要做。

結果

如Rudd在講話中解釋的一樣,麥克風是安裝中的關鍵點。只能聽到你的、好的麥克風將在識別的精度和速度上產生巨大的不同。我非常喜歡正在使用的Blue Yeti,但是我只有在辦公室絕對安靜的前提下才能使用它。

根據目前我建立的命令,我可以在視窗切換,導航web(藉助Vimium【注2】),在工作區切換,還有最重要的,我可以用合理的速度進行Python和Go的程式設計。這沒有使用鍵盤程式設計快,不過一旦你掌握了這些命令,它還是有著驚人的效率。

我在上面提到的Github倉庫分享的語法是針對我所需的工作流。我推薦你把它們作為起點,但要注意計算機可能識別你的詞語與我的不一樣。這些語法也是我經常用到的、針對特定語言的。請不要猶豫寫下你喜愛的語言。最後,在dotfiles倉庫裡的.vimrc檔案,可以找到聲音命令觸發器的自定義快捷方式。

用聲音程式設計還不完美,不過它已經達到了可作為實際選項的地步。不要繼續忍受手腕和胳膊的不適了,因為現在有了替代方法。歡迎給我傳送pull request,我們可以繼續讓聲音程式設計變得更好。

相關文章