2011-03-03

Mac OS X 上の Emacs で M-x doctor に音声でしゃべらせる

Mac OS X には say というテキストを読み上げるコマンドがあります。
それを M-x doctor で利用すれば実際に声でしゃべってくれます。

;; M-x doctor
(defadvice doctor-read-print
  (after say activate)
  "Let the psychotherapist speak with audio voice."
  (start-process "say" nil "say" "-v" "Agnes"
                 (save-excursion
                   (buffer-substring-no-properties
                    (progn
                      (re-search-backward "\n\n" nil t 2)
                      (forward-char 2)
                      (point))
                    (progn
                      (re-search-forward "\n\n" nil t)
                      (forward-char -2)
                      (point))))))

doctor-mode のヘルプによると doctor の名前が Eliza (女性)なので、声は女性の Agnes を選んでみました。
声は他に Alex, Trinoids, Zarvox, Hysterical, Bad News, Good News 等があり、システム環境設定のスピーチで確認できます。

声を Hysterical にするとどちらが医者なのかわからなくなります。
リターン連打で何人もの医者から詰問を受けている気分になります。

いずれにせよ鬱陶しさ3割増といったところでしょうか。