読み上げてもらう
ふと、w3m やら Mew でテキストを読み上げてもらえないかな〜、などと思い立ちました。
調べると 音声合成 が見つかるのですが・・・
う〜む、正直、ここまでの重たいニーズではありません・・・。
更に調べたら Windowsでもsayコマンドを - 今日覚えたこと が見つかったので、
参考にさせていただきました。
で、Ruby を使って ↓ のような感じで。
talk.rb:
#!ruby require 'win32ole' o = WIN32OLE.new("SAPI.SpVoice") while STDIN.gets o.Speak($_) end
.emacs に ↓ を記述。
(defun talk-region (start end) (interactive "r") (let ((pname "*talk-region*") (coding-system-for-write 'cp932)) (start-process-shell-command pname nil "PATH/talk.rb"))) ; パスを指定 (process-send-region pname start end) (process-send-eof pname)))
読み上げてほしいところをリージョン選択して M-x talk-region で読み上げ開始。
でも、よく考えたら、英語読み上げの出番は稀なので・・・
日本語のを探したら SofTalk - アットウィキ が見つかりました。
ああ、これ、某ニコニコするところで見た (聞いた) ことあるなwww
早速インストールして Emacs から呼び出せるようにしてみました。
(defun talk-region (start end) (interactive "r") (let ((pname "*talk-region*") (coding-system-for-write 'cp932)) (start-process-shell-command pname nil "INSTALL-PATH/SofTalk.exe") ; パスを指定 (process-send-string pname "/W:") ; SofTalk のオプション (process-send-region pname start end) (process-send-eof pname))) (global-set-key "\C-c\M-t" 'talk-region) ; キーバインドは適当に
あ、とりあえず、SofTalk の読み辞書に
"いーまっくす emacs" と "りすぷ lisp" は登録しとかないと・・・。