トップ «前の日記(2007-01-22 (Mon)) 最新 次の日記(2007-01-28 (Sun))» 編集

猫熊は燃えつきた?!日記

最近なんにもやっていませんが、なにかやったらこちらに置くようにしています。
2002|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|
2011|09|
2012|02|


2007-01-26 (Fri) [長年日記]

パニック

一月半以上バグ発見!!がなかったのに、なんでこの土壇場でふたつも連続しますかねぇ ;_;

ひとつはなんとかリカバーできたけど、もうひとつは(直し方は完璧にわかっているのだけど)時間切れでアウト。う〜〜、こういうときって、本当にソフト屋さんがうらやましいぞ。

ま、このタイミングで発覚したのは不幸中の幸いというか、ちょーラッキーかも。一週間遅かったら大変な騒ぎだっただろうな。

というわけで、日記書く暇がなかったから今日の日記は今週のまとめ、みたいな感じ。

抜糸

そういえば、火曜日(1月23日)にダン抜糸済。今週末にはシャンプしないと、すでに毛がへろへろしている。ちょっと臭くなってきたしね。

Lookup sound extender

lookup の開発を精力的に続けている伊藤さんちで発見。なんと、lookup で音声データのない辞書なのに英単語の発音が聞けるのだ。 sf の stardict のページから WyabdcRealPeopleTTS を頂いてきて、無事動作確認。ぼくの Zaurus もう専用辞書に負けないなぁ。

英単語の発音をもっと簡単に聞きたいかも

WyabdcRealPeopleTTS は展開すると、200MByte 前後にもなるのだし、lookup からしか使わないのはもったいない。特にぼくはどっちかというと SDIC の方が好きだし。。。^^;;;
なので、単に発音だけ聞くものを作ってみた。
(defvar my-pronunciation-dir "~/WyabdcRealPeopleTTS"
  "*WyabdcRealPeopleTTS を展開したディレクトリ名。")
  
(defvar my-pronunciation-command 'play-sound-file)
  "*音声を出力する関数 or コマンドを指定する。
  
symbol => 関数 (とりあえず引数なしのみ) (ex. 'play-sound-file)
string => コマンド名                    (ex. \"fiber\")
list  => '(コマンド名 引数1 引数2 ...)  (ex. '(\"play\" \"-v\" \"30\"))")
  
(defun my-pronunciation-word-at-point-or-region (&optional string)
  "カーソル位置の単語、あるいは入力した単語の音声ファイルを再生する。
音声ファイルは \"WyabdcRealPeopleTTS\" のみ対応。
SDIC または lookup があるとなお良い。"
  (interactive)
  (let* ((original (downcase
		    (or string
			(and (or (and (boundp 'mark-active) mark-active)
				 (and (fboundp 'region-exists-p) (region-exists-p)))
			     (let ((word (buffer-substring-no-properties
					  (region-beginning) (region-end))))
			       (japanese-hankaku word)
			       word))
			(and (or (fboundp 'sdic-read-from-minibuffer)
				 (and (locate-library "sdic")
				      (require 'sdic)))
			     (sdic-read-from-minibuffer nil "(pronunciation)"))
			(progn
			  (or (fboundp 'lookup-current-word)
			      (and (locate-library "lookup")
				   (require 'lookup)))
			  (read-from-minibuffer "(pronunciation) Input: "
						(and (fboundp 'lookup-current-word)
						     (lookup-current-word))
						nil nil
						(and (boundp 'lookup-input-history)
						     'lookup-input-history))))))
	 stems word file)
    (unless (and my-pronunciation-dir
		 (file-exists-p my-pronunciation-dir)
		 (file-directory-p my-pronunciation-dir))
      (error "Error: illegal my-pronunciation-dir"))
    (when (string-match "[ \t]*\\([^ \t]+\\)" original)
      (setq original (match-string 1 original)))
    (setq stems (cons original
		      (and (or (fboundp 'stem-english)
			       (and (or (locate-library "stem")
					(locate-library "stem-english"))
				    (require 'stem)))
			   (nreverse (delete original (stem-english original))))))
    (setq file
	  (catch 'play
	    (while (setq word (car stems))
	      (setq stems (cdr stems))
	      (setq file (expand-file-name (concat word ".wav")
					   (expand-file-name (substring word 0 1)
							     my-pronunciation-dir)))
	      (when (and (file-exists-p file) (file-readable-p file))
		(throw 'play file)))))
    (if (not file)
	(message "Not exist: %s" original)
      (if (string= word original)
	  (message "Pronunciation Play: %s" word)
	(message "Pronunciation Play: %s => %s" original word))
      (cond
       ((symbolp my-pronunciation-command)
	(funcall my-pronunciation-command file))
       ((stringp my-pronunciation-command)
	(start-process "*my-pronunciation*" nil my-pronunciation-command file))
       ((and (listp my-pronunciation-command)
	     (stringp (car my-pronunciation-command)))
	(apply 'start-process "*my-pronunciation*" nil
	       (car my-pronunciation-command)
	       (append (cdr my-pronunciation-command) (list file))))
       (t
	(error "Error: illegal my-pronunciation-command"))))
    (cons original word)))
適当に global-map にバインドしたり、sdic-mode-map にバインドしたりして OK。
英語の文章を全部連続して再生したらどんなになるか面白そうかも。

ちょっと変えた: SDIC がなくて lookup があるときの入力は、ちゃんと lookup-input-history を使うようにした。なんで、lookup-read-string() を使わないか?というと余り好きでないから ^^;;;
また、ちょっと変えた(2007-01-28(日) 14:28)。入力にスペースやタブがあったら消しておく。 またまた、ちょっと変えた(2007-01-28(日) 17:16)。lookup のテスト向けに入れておいた nil がそのままだった ^^;;;

menudiag.el のその後

その後も(気分転換のために)おれさま仕様で改造を続けている。大体終わったと思うのでチェックしたら出しますね。特に、自分では設定していない(使っていない)モードは危ないような気がする。


書いている人: 白井秀行 (mailto:shirai@meadowy。org)
訪問して下さった人: 今日: 人, 昨日: , 過去: 人 (2007年5月10日から)
RDF Feed