3月 09
はじめに
NASをTimeCapsuleして利用する方法があることを知り
古いPCにFreeBSDをインストールしこれをTimeCapsuleとして
利用することにした。
- 2009.10.25 追記:スパースバンドル・ディスクイメージをコマンドで作る。
続きを読む »
« 続きを隠す
環境
| OS |
Version |
備考 |
| FreeBSD |
7.1-RELEASE-p3 |
i386 |
| MacOSX |
10.5.6 |
PowerPC |
準備
FreeBSD側ですること
- Netatalkをportsからインストール
- 参考サイトのNetatalk 2.0.3 on FreeBSD 7.0 CJK Environmentのパッチ適用
- /etc/make.conf
| WITH_SRVLOC=no # と変更。Leopardの場合は不要とのこと |
- /etc/rc.conf に以下を追加
etatalk_enable="YES"
atalkd_enable="NO"
papd_enable="NO"
cnid_metad_enable="YES"
afpd_enable="YES"
timelord_enable="NO"
- /usr/local/etc/AppleVolumes.default の修正(例)
| 〜 ←行末のこれは削除 (行頭 # 付加でコメントにする) |
| /opt/pbg4 TimeMachine cnidscheme:cdb options:usedots |
| 説明:/optはUSB接続の余ったHDD(120GB) でも古いPCなのでUSB1.0接続 |
- リブート
MacOSX側ですること
- 「ディスクユーティリティ」で空のディスクイメージを作成
| 作成するディスクイメージの条件 |
設定値 |
備考 |
| ボリュームサイズ |
小さめ適当 |
後から増やせる |
| ボリュームフォーマット |
Mac OS 拡張(ジャーナリング) |
|
| 暗号化 |
無し |
|
| パーティション |
ハードディスク |
|
| イメージフォーマット |
スパースバンドル・ディスクイメージ |
|
- 作成したイメージファイルを、リモート側(FreeBSD)にコピーする。
このイメージファイルのファイル名は、
<macosx のホスト名>_< そのホストの有線Macアドレス>;
Macアドレスの":"は不要で、有線LAN側のMacアドレスを指定する。
例) < ホスト名>_NNNNNNNNNNN.sparsebundle
が、しかし、リストアした事がないので、有効に使えるのか判らないです。また、我が家では無線LANをしてますが、指定するのはMac OSX側の有線LANのMacアドレスです。
- 以下のコマンドを叩く (sudo しなくてい良いみたい)
| defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 |
- Finderのメニューから「移動」→「サーバ接続」で
| afp://<freebsd のホスト(IP address指定が良いかもしれない)> |
- ここでマウントできるなら、「+」押下で、「よく使うサーバ」に登録する。
- XXXX.sparsebundle (XXXXは仮、をダブルクリックするとマウントできる
- 「ディスクユーティリティー」で、これを選択しファイルサイズを増やす。
- ・・・ん、忘れてきました。参考サイトを参照してください。
- バックアップが可能になった場合
- 自動バックアップが出来る様に、ログイン時にFreeBSD側をautomountする設定をします。
- 後は「システム環境設定」→「タイムマシン」で、このディスクが見えたら
おめでとう御座います。
- さらに、「システム環境設定」→「アカウント」で、「ログイン項目」に、上述で「よく使うサーバ」で設定した内容を登録します。このファイルは以下にあります。
| Library/よく使う項目/< 先程指定したIPアドレス> |
- このファイルを、ログイン項目に、Drag&Drop すると登録できます。
備考
参考サイト
補足情報
- netatalk 2.1devで4F対応 (試してません)
- netatalk 2.1devは環境整備中のため、別メモにします。
10月 20
X11の解像度を最初から1280×800にする方法。
・経緯
VMware Fusion(2.0.6)にFreeBSDをインストールし、
FreeBSD上でxorg.confをvmware-config-tools.plで作成しても
解像度を1280×800に設定することが出来ない。(選択欄にも現れない)
あとでkdeやgnomeなどで変更できるんですが…xorg.confだけで解決したい。
続きを読む »
« 続きを隠す
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
| # VMware SVGA
Section "Module"
Load "dbe" # Double buffer extension
SubSection "extmod"
EndSubSection
Load "type1"
Load "freetype"
# Load "glx"
EndSection
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
# FontPath "/usr/X11R6/lib/X11/fonts/local/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
# ModulePath "/usr/X11R6/lib/modules"
EndSection
Section "ServerFlags"
# Option NoTrapSignals
EndSection
Section "InputDevice"
Identifier "VMware Keyboard"
Driver "keyboard"
Option "AutoRepeat" "500 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "jp106"
Option "XkbLayout" "jp"
Option "XkbCompat" ""
EndSection
Section "InputDevice"
Identifier "VMware Mouse"
Driver "vmmouse"
Option "Protocol" "ps/2"
Option "Device" "/dev/psm0"
Option "ZAxisMapping" "4 5"
# Option "Emulate3Buttons"
# Option "Emulate3Timeout" "50"
# Option "ChordMiddle"
EndSection
Section "Device"
Identifier "VMware SVGA"
Driver "vmware"
EndSection
Section "Screen"
Identifier "Screen0"
Device "VMware SVGA"
Monitor "vmware"
DefaultDepth 24
# DefaultDepth 16
# Don't specify DefaultColorDepth unless you know what you're
# doing. It will override the driver's preferences which can
# cause the X server not to run if the host doesn't support the
# depth.
Subsection "Display"
Depth 4
Modes "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "800x600"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1280x800"
ViewPort 0 0
EndSubsection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "VMware Keyboard" "CoreKeyboard"
InputDevice "VMware Mouse" "CorePointer"
EndSection
Section "Monitor"
Identifier "vmware"
VendorName "VMware, Inc"
ModelName "Monitor"
HorizSync 31.5 - 100.0
VertRefresh 59.0 - 75.0
Modeline "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828
EndSection |
8月 07
はじめに
Mac OSX 10.5.8にアップデートするとこれまで動作不安定なUSBハードディスクを認識する
様になった。(アップデート情報に記載されてたので該当するか半信半疑で試す)
・何種類かの外付け USB ハードディスクとの互換性が改善されました。
- 2009.10.xx USBハードディスクの接続方法に問題があった。
Y字USBケーブルの片方を使っていなかった。(空いてた片方は電源供給用らしい)
抜いた状態でもMacBookは安定して使えたのに、PowerPCはこれで問題が生じてたとも
思われる。突然、USBハードディスクがアンマウントされるので、安定した電力供給が
できなかったのだろうな。
続きを読む »
« 続きを隠す
経緯
TimeMachine使用目的で、安価なSATA→USB2.0のアダプタを購入したのですが、
PowerPC版 Mac OSX 10.5.6 では動作不安定だった。(Intel版は動作は安定)
そんなことで、ノートPC(x86)にFreeBSDとNetatalkをインストールしTimeCapsuleとして
使用し始めた。
状況:USBハードディスクをTimeMachineに変更する
- FreeBSDに接続していたUSBハードディスクを抜き、PowerBook G4に繋ぐ。
- PowerBook G4は認識し、TimeMachineのバックアップ先に変更しバックアップ開始する。
- 2009.08.07 10:50 順調にバックアップ中。 (4.1GB/21.8GB)
- 2009.08.07 14:46 終了し、続けて「今すぐバックアップ」も正常終了。
備考
- (*1) メーカ不明、価格は1280円程度、ケースには「2.5" SATA EXTERNAL CASE」と記載。
- 以前の対策
9月 29
はじめに
AppleScriptの使い方も知らないのですが、ちょっとメモです。
・やりたいこと
ある結果をダイアログに表示したい。
続きを読む »
« 続きを隠す
・スクリプト(disp.as)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/usr/bin/osascript
(*
-- ダイアログにメッセージを表示し10秒後に閉じる.
-- Usage : <msg>
-- ex.
-- % disp.as This is a Pen.
*)
on run argv
set _str to argv as string
tell application "System Events"
display dialog _str buttons {"OK"} default button 1 giving up after 10 with icon 1
end tell
end run |
目的は
cronで実行するスクリプトがあり、実行結果によってはダイアログ表示する方法を探していました。
実装・動作内容
- ダイアログ表示のみのスクリプトを用意する。
- 表示したい文字列は、このスクリプトの起動引数で渡す。
- 一定時間経過したら自動消滅する。
動作環境
Mac OSX 10.5 以上
準備
- disp.as をパスの通った場所に保存し、実行権を与える。
$ chmod +x disp.as
- cronで実行するスクリプトに、手を加える。
以下はkshのスクリプトで、
disp.asをバックグラウンドで起動し実行結果は捨てます。
…
( disp.as "$VAL を更新しました。" ) 2>&1 > /dev/null &
…
備考
- ダイアログに表示するボタンを無くす方法を知りたい。
余談
- たったこれだけの内容なのに、随分と調べるのに時間がかかりました。
10月 19
はじめに
10年程前に購入した「翻訳魂 Linux/FreeBSD」、ここ数年まったく使っていない。
VMware Fusion 上には、FreeBSDはインストールしてあるので、
インストールしてみたが、取説をしっかり読んでいなかったので動作させるまでに
時間がかかった、以上、そのメモです。
続きを読む »
« 続きを隠す
構成
| 機器/ソフト |
OS/バージョン |
備考 |
| MacBook |
Mac OSX 10.6.1 |
|
| VMware Fusion 2 |
2.0.6 |
|
| FreeBSD |
7.0-RELEASE-p12 |
64bit版 |
設定変更
FreeBSD側
/sys/amd64/conf/<任意>
GENERICの設定に対して、以下を追加、要らないかも?
options COMPAT_43
/etc/fstab (ここが味噌)
proc /proc procfs rw 0 0
追加したら、
$ mount proc
するか、リブートする。
参考情報
備考
起動は出来るが変換中にエラーが生じる。
- xhonyaku 等で変換すると、新規ダイアログに -303 と表示されボタン押下で死ぬ。
コンソールにログ出力を設定していると、
「・・・・ honyaku_ej : ERROR(-200) : EOF of pipe read 」な感じのエラーが起きていた。
/etc/fstab に、procfsの定義をしていないのが原因なようです。
なので、FreeBSDのカーネルconfigファイルにoption PROCFSの記述は必須ですね。
VMware上のFreeBSD 2.2.8-RELEASEでは当然使えるが、問題あり。
但し、FreeBSD内でcalcru のエラーが何かと頻発する。(割り切りが必要?)
翻訳魂限定の問題ではなく、全体で起きます。
VMware上のFreeBSD 7.2-RELEASEで実行不可?
- 翻訳魂とは無関係でOS自体が突然落ちる時がある。
(メモリアクセス違反が生じた…らしい)
- また、X11のバージョンアップに伴い?、vmmouseを使っても、
VMware上の画面とOSXのデスクトップへのマウスポインタの行き来が出来ない。
(VMwareのサポート対象外なので仕方がない)
- X11関連ソフトはOSXのを使って表示させるから、不要だけどね。
slogin -X <FreeBSDのホスト>して、
xhonyaku なり、emacsなり起動すると、
OSXのX11が起動して、表示してくれる。(なんと親切なんだ)
文字コードの問題
- 翻訳魂はja_JP.eucJP、Mac OSXはUTF-8を使ってるので、Carbon Emacs上で使った方が便利ですね。(開発者に感謝)
9月 26
はじめに
Sayコマンドより、日本語で話す方法は無いかと探してました。
嬉しいことに、先人の方がsaykanjiで実装してましたので、ちょっと改造することにしました。
-2009.09.26 仮版
-2009.10.03 修正:マルチバイト文字列の不具合修正 (gsedに変更)
-2009.10.10 追記:アクセント付き文字列
続きを読む »
« 続きを隠す
目的
- 英単語混じりな文章をsaykanaで発音可能にする。
改造概要
- ベースはsaykanjiのスクリプトを改造する。
- NADのカタカナ英語辞書 10.6+を使用する。
役割、英単語をカタカナ読みに変換する辞書です。(素晴らしい)
10.6+のバージョンアップ版を使用する。
~/Downloadsに展開してることを前提にしてます。
このファイルは改行コードがmac仕様になってるので、変換が必要です。
grep等で検索できないので、スクリプト内で変換します。
(UNIX改行でUTF-8の出力を指定する)
- kshの関数としてロード可能にする。
- スクリプト指定でも実行可能にする。
動作環境
- OS
| OS |
CPU |
備考 |
| Mac OSX 10.6 以上 |
Intel Mac |
MacBook |
| Mac OSX 10.5 以上 |
PowerPC |
PowerBook G4 |
- ksh (pdksh,ksh93)が使用可能な環境
| OS |
設定方法 |
説明 |
| Mac OSX |
cd /usr; ln -s /bin/ksh |
/usr/bin/ksh として使う |
- Macport で使用したソフト
| ソフト名 |
バージョン |
用途 |
| nkf |
2.0.9-20090426_0 |
辞書データ(.csv)のUTF/UNIX改行変換に使用 |
| mecab |
0.96_0 |
UTF8使用可能にする |
| mecab-ipadic-utf8 |
2.7.0-20070610_0 |
辞書データ |
| gsed |
4.2.1_0 |
マルチバイト文字列の不具合対策 |
- mecab : /opt/local/lib/mecab/dic/ipadic-utf8/dicrcの修正
「私は」の変換が「ワタクシハ」になるので「ワタクシワ」に変更する。
| 定義内容 |
備考 |
| ;node-format-yomi = %pS%f[7] |
コメント |
| node-format-yomi = %pS%f[8] |
こちらを有効にする。 |
機能
実装機能
- 起動オプション:saykana の起動オプションが使用可能なこと。
- 辞書登録:辞書に登録されていない単語を容易に登録できる様にすること。
- その他
未実装機能
起動オプション
saykanji.sh スクリプトの初期値変更で動作変更が可能です。
| オプション名 |
説明 |
備考 |
| -S <n> |
字幕表示 1:原文表示,2:1+音声文表示 |
|
| -C |
辞書に未登録な単語のデータを作成 |
${SK_UNDICT}にテンプレートを作成する。デフォルト ON |
| -M |
-C で作成したデータを辞書に登録する |
読みの「XX」は未登録として扱わない |
| -d |
数値文字を桁表現で発音する。指定時on。 |
デフォルト off |
| -f <filel> |
指定した<file>を行単位で読込み音声に変換する |
|
| -v <voice> |
SayKanaのオプション f1:女性,m1:男性 |
デフォルト m1 |
| -s <speed> |
SayKanaのオプション [50-300] |
デフォルト100 |
使用例
- 未登録な単語を指定した場合
$ saykana.sh 私の名前はhogehogeです。
"XX","hogehoge","無品詞"
~/Develop/cvsroot/tool/saykanji/unknown.csv:[未登録データ件数: 1]
- hogehogeが未登録なので、~/Develop/cvsroot/tool/saykanji/unknown.csvをエディタで開き編集します。
| 変更前 |
"XX","hogehoge","無品詞" |
| 変更後 |
"ほげほげ","hogehoge","無品詞" |
- 再度実行する。
$ saykana.sh 私の名前はhogehogeです。
- 字幕表示
- 原文表示
$ saykana.sh -S 1 私の名前はhogehogeです。
原文:私の名前はhogehogeです。
- 原文+音声文表示
$ saykana.sh -S 2 私の名前はhogehogeです。
原文:私の名前はhogehogeです。
音声: ワタクシ ノ ナマエ ワ ほげほげ デス 。
- 数値の桁表現をする。(なんか変) (字幕表示)
$ ./saykanji.sh -S 2 -d 缶ジュースは120円です
原文:缶ジュースは120円です。
音声: カン ジュース ワ <numk VAL=120> エン デス 。
- ファイルを読ませる
$ ./saykanji.sh -f readme.txt
- Mac OSX: 青空文庫読み上げスクリプトで使ってみる。
アクセント付き文字列
以下のサイトを拝見すると、簡単には作れなさそうです。
要はSaykanaに渡すアクセント付きの文字列を取得手段が欲しいだけなんですが、
ぼちぼちと作るには、荷が重そう。
備考
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
| #!/usr/bin/ksh
# $Id: saykanji.sh,v 1.8 2009/10/03 11:15:04 shimizu Exp $
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/local/bin:/usr/local/bin:~/bin
SAYKANA=/usr/local/bin/saykana
# 元辞書
# 入手先: http://nadroom.blog.shinobi.jp/Entry/91/
DICT=~/Downloads/カタカナ英語辞書10.6+/NADのカタカナ英語辞書10.6.txt
# 辞書
# お使いの環境に応じて修正して下さい。
SK_DICT=~/Develop/cvsroot/tool/saykanji/kana.csv # 辞書
SK_UNDICT=~/Develop/cvsroot/tool/saykanji/unknown.csv # 辞書未登録単語集
_sk_opt_setup=0 # 初回のみ、動くなら0にして下さい。
##############################################################################
_sk_opt=
_sk_opt_LOD=0 # -L Load のみ
_sk_opt_VER=0 # -V 処理内容を表示
_sk_opt_SUB=0 # -S <n> (字幕表示: 1:原文表示, 2:1+音声文字表示)
_sk_opt_CHK=1 # -C (辞書未登録な単語のデータ作成: 0:on, 1:off)
# 1) ${SK_UNDICT} の「読み」を編集して下さい。
# (デフォルトでは読み部分が、XX ($_sk_unknown)になってます。)
# 2) -M 指定又はONの時、次回起動時に${SK_DICT}に登録します。
_sk_opt_MRG=1 # -M (辞書未登録な単語を${SK_DICT}に登録する)
_sk_opt_digit=0 # -d (数値桁表現音声: 0:on, 1:off)
_sk_opt_file=0 # -f <file> (指定ファイルの音声出力)
_sk_opt_voice="-v f1" # -v (SayKanaのオプション: f1=女性,m1=男性)
_sk_opt_speed="-s 100" # -s <n> (SayKanaのオプション: speed [50-300])
_sk_unknown_word="チョメチョメ" # 辞書未登録な単語の読み方 [発音します]
# : -C 指定時に使用
_sk_unknown="\"XX\"" # 辞書未登録な単語のデータ作成
# : ${SK_UNDICT}作成時に使用
# 使用するコマンドのチェック (簡易版)
function _sk_cmd_check # <command>
{
typeset _leng=$(which $1);
if [[ ${#_leng} -eq 0 ]]; then
echo "Not Found : $1 : インストール又はパスを通して下さい"
exit 2
fi
}
# 辞書&コマンドの存在確認
# ${SK_DICT} 辞書が無かったら作成する
function _sk_setup #
{
if [[ -r ${DICT} ]]; then
if [[ ! -f ${SK_DICT} ]]; then
_sk_cmd_check mecab
_sk_cmd_check grep
_sk_cmd_check mv
_sk_cmd_check sort
_sk_cmd_check nkf
_sk_cmd_check gsed
nkf -Lu -w ${DICT} > ${SK_DICT}
touch ${SK_UNDICT}
fi
else
echo "Not Found : ${DICT}"
exit 2
fi
}
# 英字判定
function _sk_isalpha #
{
typeset _ret;
_ret=$(echo $1 | tr -d '[[:alpha:]]')
echo ${#_ret}
}
# 数字判定
function _sk_isdigit #
{
typeset _ret;
_ret=$(echo $1 | tr -d '[[:digit:]]')
echo ${#_ret}
}
function _sk_lex_string # <string>...
{
typeset _result;
typeset _word;
typeset _yomi;
(echo "$*" | mecab -O wakati | mecab -O yomi | gsed 's/ /\n/g' ) |
while read _word ; do
if [[ $(_sk_isalpha ${_word}) -eq 0 ]]; then
_yomi=$(grep -i "\"${_word}\"" $SK_DICT |
head -1 | cut -d',' -f1 | gsed 's/"//g')
if [[ -n ${_yomi} ]]; then
_word=${_yomi};
elif [[ ${_sk_opt_CHK} -eq 1 ]]; then
echo "${_sk_unknown},\"${_word}\",\"無品詞\"" >> $SK_UNDICT
[[ ${_sk_opt_VER} -eq 1 ]] &&
echo "${_sk_unknown},\"${_word}\",\"無品詞\""
_word=${_sk_unknown_word} # 知らない単語はxxになる。
fi
elif [[ $(_sk_isdigit ${_word}) -eq 0 && ${_sk_opt_digit} -eq 1 ]]; then
_word="<numk VAL=${_word}>"
fi
_result="${_result} ${_word}"
done
(( ${_sk_opt_SUB} >= 1 )) && echo "原文:$*"
(( ${_sk_opt_SUB} >= 2 )) && echo "音声:${_result}"
(saykana ${_sk_opt} "${_result}") 2>&1 > /dev/null
}
function _sk_make_uniq_file # <file>
{
typeset _file=$1;
if [[ -f ${_file} ]]; then
sort -u ${_file} > ${_file}.$$
mv ${_file}.$$ ${_file}
fi
}
function _sk_lex_file # </file><file>
{
typeset _file=$1;
typeset _buf;
# 入力ファイルを出力し字句解析する。
# (nkf -Lu -w ${_file)) として、UTFに変換した方がよいかも?
# (cat ${_file}) |
(nkf -Lu -w ${_file}) |
while read _buf; do
_sk_lex_string ${_buf}
done
}
function _sk_word_regist # ${SK_DICT} ${SK_UNDICT}
{
typeset _dict=$1;
typeset _undict=$2;
(grep -v "${_sk_unknown}" ${_undict}) |
while read _buf; do
echo "${_buf}" >> ${_dict}
done
(grep "${_sk_unknown}" ${_undict}) > ${_undict}.$$
mv ${_undict}.$$ ${_undict}
}
function saykanji # <option> <string>...
{
typeset _opt;
typeset _word;
typeset _tmp;
####################################
#・前処理
# 1) 起動オプションの確認
while getopts ":LVS:CMdhf:v:s:" _opt; do
case $_opt in
L) _sk_opt_LOD=1 ;;
V) _sk_opt_VER=1 ;;
S) _sk_opt_SUB="$OPTARG" ;;
C) _sk_opt_CHK=1 ;;
M) _sk_opt_MRG=1 ;;
f) _sk_opt_file="$OPTARG" ;;
d) _sk_opt_digit=1 ;;
v) _sk_opt_voice="-v $OPTARG" ;;
s) _sk_opt_speed="-s $OPTARG" ;;
h|?) printf "Usage: %s: [-v {f1|m1}] [-s 50-300] [-f file]\n" $0
exit 2;;
esac
done
shift $(($OPTIND -1))
_sk_opt="${_sk_opt_voice} ${_sk_opt_speed}"
if [[ ${_sk_opt_LOD} -eq 1 ]]; then
_sk_opt_LOD=0
return
fi
# 2) 単語の辞書登録
if (( ${_sk_opt_MRG} == 1 )); then
_sk_word_regist ${SK_DICT} ${SK_UNDICT}
fi
####################################
#・処理
# 1) 字句解析+音声
if [[ -f ${_sk_opt_file} ]]; then
_sk_lex_file ${_sk_opt_file}
else
_sk_lex_string $*
fi
####################################
#・後処理
if [[ ${_sk_opt_VER} -eq 1 ]]; then
# 同一単語の複数登録の抑止
_sk_make_uniq_file ${SK_UNDICT}
(wc -l ${SK_UNDICT} | gsed 's/ //g' ) |
while read _word _tmp; do
if [[ ${_word} -gt 0 ]]; then
echo "${SK_UNDICT}:[未登録データ件数: ${_word}]"
fi
done
fi
}
if (( ${_sk_opt_setup} == 1 )); then
_sk_setup
fi
if (( $# > 0 )); then
saykanji $*
fi |
10月 04
はじめに
先日、Mac用自動音声プログラム(フリー)版を入手しつつ、
Saykanjiを改造し遊んでましたが、これと言ってパソコンが日本語で喋って
便利と思うは余り思い浮かばない。(逆に五月蠅く感じることもある)
しかし、改造版Saykanaは表面的な部分を弄っているに過ぎないが、
使用している機能は優れたソフトウェア群だ!と思う。
っと言うことで、漢字の読み書きも苦手ななので、青空文庫の読み上げ
スクリプトを作ることにしました。
-2009.10.03 プロトタイプ:(字幕+音声で漢字の読み方を勉強等):誤字脱字多し
-2009.10.07 追記:az_speech.sh v1.1 :説明不足気味
続きを読む »
« 続きを隠す
目的
- 秋の夜長、読めない漢字の本でも読んでみたい。
- 音楽鑑賞もいいけど、ラジオ代わりに使えたらいいかな。
動作環境
| OS |
CPU |
備考 |
| Mac OSX 10.6.1 |
Intel Core2Duo |
MacBook |
| Mac OSX 10.5.8 |
PPC |
PowerBook G4 (未確認) |
前提
- 改造: saykanji on saykana
- この改造が済んでいること。
- 読み上げスクリプトは、青空文庫ファイルを読み込み適宜整形後、saykanji,mecab,saykanaにデータ処理を委譲する。(これだけ)
- CUI環境で動作。(GUI環境を目指し開発すると、今年の秋は終わってしまう)
- 青空文庫の提供ファイルを使用する。
以下の、最も簡単そうなNo.A.1に対応する。
「青空文庫取扱ファイル種別一覧」(記入もれの可能性あり)
| No.A. |
ファイル種別予定 |
対応予定 |
備考 |
| 1 |
テキストファイル(ルビあり) |
実装中 |
2,3ファイルテスト済み |
| 2 |
XHTMLファイル |
未定 |
|
| 3 |
エキスパンドブック・ファイル |
無し |
|
| 4 |
PDF |
無し |
|
| 5 |
TTZ |
無し |
|
構成ファイル一覧
| No.B. |
パス/ファイル名 |
説明 |
備考 |
| 1 |
az_speech.sh |
青空文庫読み上げ |
(仮名)名前が長すぎる |
| 2 |
*.zip |
青空文庫取扱ファイル種別一覧 No.A.1で圧縮版 |
|
| 3 |
*.txt |
青空文庫取扱ファイル種別一覧 No.A.1で解凍版 |
スクリプトに指定する |
| 4 |
〜/tmp/aozora.*.txt |
No.A.1 *.txtの整形版 |
スクリプトが作る |
| 5 |
.aozorarc |
環境設定ファイル |
記録保存に使う予定 |
機能
- 前提通り、指定したNo.B.3を指定すると字幕と音声で読み上げが一気に始まる。
不満な点
- 何度か使ってみると、使いにくい箇所はでてくる。
- 停止・再生ができない。
CTRL+s,CTRL+qは出来ますが、そんな意味でなくて。
- また聴きたい本のファイル名が分からない。(覚えるのが面倒)
スクリプトで書籍管理ができれば有り難いかも。
- 書庫一覧
- 読書状態の確認
停止位置からの再開は欲しいな。巻き戻しは出来るかな・・・
- 青空文庫からの調達
これはWebで出来るので、わざわざ作らない。
現状では圧縮・解凍・整形の3種類のファイルがあるので、
最小限に残せれば良いのかな。
実装済み
- 字幕・音声表示(字幕は端末に垂れ流し)
- 各種起動オプション
- saykanaに渡すオプション
- 主にデバッグ用ですね。本スクリプト/saykanji/mecab等の最終変換結果を見るとか。
実装予定
以下、不完全、本単位で出来たら便利かな。
- 済み:
読書状態の保存
- 済み:
保存状態からの読書の再開
使用例
- 上述より、Safariで青空文庫からzip入手し、Finderで解凍する。
- Finderで解凍してできたファイル(仮ファイルA.txt)とする。
- スクリプトに指定する。
$ az_speech.sh -i 仮ファイルA.txt
ここで問題が無ければ、読み上げが始まる。
- 起動オプション
-G,-D, -S 2, -f ,-V 等がありどれも状態を確認するものなので、
- -v {m1|f1}
m1 か f1 を指定することで、男女の声質が変わる。
saykanaの元々の機能です。
- -s [50-300]
読み上げスピードが変更 (早い(0) > 普通(100) > 低速(300))
saykanaの元々の機能です。
スクリーンショット
スクリーンショットは以下のコマンドの実行中のものです。
$ az_speech.sh -i rashomon.txt
読み上げスクリプト(Download)
備考
- 拝聴
- ドグラ・マグラ
ルビ関係の変換で何度か聴きました。
ルビ入りで、”「こ」わ「ご」わ”だったかな、うまく変換できませんでした。
- 人間失格
一度読んだことあり、スクリプトの確認で使ってました。
これは1行が文末の「。」までが長いんです。
いいデータになりました。
- 羅生門
3,40分で聞き取れます。内容は別として。
短編だったのかな。「京都」は「みやこ」と変換するんだ。
スクリプトでも読めない漢字が少しありましたが、気にならないかな。
って、さて聴こうと思ったら終わりでした。
6月 25
はじめに
memcachedは以前からあるようで、これを取り入れると
レスポンスが良くなるようだ。回線が細いので早速インストールした。
結果、取り合えず動く様になりましたが、URLが壊れる。
まだ壊れた状態ですが、アクセスはできるので、しばし放置し
何をしたかのメモにする。(2009年が、0000年になる)
ぼちぼち調べます。
- 2009.06.25 memcachedは使えるが被害がある状態。
- 2009.09.20 修正
続きを読む »
« 続きを隠す
前提
問題点
Q. phpがphp.ini又memcache.iniに記述したが
「extension=memcache.so」を読み込まない。
- 症状
- php -v を実行すると、memcache.so の読み込み失敗が確認できるる。
- メモ:php –ini で参照してるファイル一覧がわかる。
- メモ:php -m で、ロードしたモジュールの一覧がわかる。
- 対策(この環境のみ?)
Q.動いてる様ですがURLが壊れる(但し、参照可能)
- 症状:西暦の年が、0000年になってしまう。
- 状況:上述状態でも読み込み可能。
- 不明点:対策方法(調査中)
3月 26
スピーチで指定した声が違うんです。
- 2009.09.20 追記:備考欄
続きを読む »
« 続きを隠す
状況
- 時報で使ってる声は女性 (指定通り)
- リモート(Cron)から実行した場合は男性になる。
調べてみる。
| コマンド |
備考 |
| $ man say |
万歳じゃないよ |
どうやら、[-v voice]で、voiceの名前を変えると出来るらしい。
デフォルトは男性声になる様です。
| コマンド |
備考 |
| say -v ‘Bad News’ < 通知内容> |
暗い気持ちになります |
| say -v Vicky < 通知内容> |
こっちがいいかな |
備考
8月 28
はじめに
本日(2009/8/28)発売されたので、購入しアップデートしました。
残念ながら旧タイプのMacBookではアプリは64bitで動作しますが、
カーネルは32bitでしか動作しない様です。
この動作の仕組みが気になりますが、Machだから陰で動いてるんでしょうね?
それは置いといて、アップデート前後の気になる点のメモです。
(誤解のないよう、64bit対応されたアプリは64bitで動作してます)
- 2009.09.07 追加:Flash Player 要バージョンアップ
- 2009.09.?? バージョンアップ:10.6.1
- 2009.09.14 修正・未記入箇所追記
続きを読む »
« 続きを隠す
機器
MacBook (旧式) : MA701/A
重要
アプリ
体感的には宣伝通り、少し早くなってると感じる。
topで観ると、以前と比べメモリ食ってます。
topの表示項目が増えたので、ちょっと見難い。(プロセス状況だけ見るには)
ネットワーク
DNSを2つ設定してると、後者を優先してる感じがする。
1番目に家庭内DNS、2番目に外向けDNSを設定。
(実際は1番目の設定だけでも事足りる、外も見る様にしてるから)
ターミナルでnslookupするとIPアドレスは検索可能なのにダメです。
(ぼそぼそ、スレッド間の同期の取り方が問題あるとか・・・)
- Safari, Mail
上述の外向けDNSの結果を優先してるようで、自宅内(メール/Web)サーバを
FQDN指定では解決できない。
- 対策
- IPアドレス指定なら解決できる。又は
- 2番目の外向けDNSの設定を削除する。
外からはホスト名でも、家庭内ならドメイン名として扱ってる様な
微妙なDNS設定をしてるので改善して欲しいな。補助的DNSは2つ欲しい。
- Safari (Javaアプリ)
Yahooのビリヤードを試したところ、
- 日本語入力が出来ない。(以前から同じ)
- フォントが汚くなった。(読み難くなった)
FEP (ATOK 2006)
使えなくなった。・・・なんてこった。また出費かも?調べよう。
- ATOK 2009 for Mac AAA優待版[DL] (4725円)
購入済み。
SIMBL
- SafariStand, Visor も使えなくなった。
HKKB Lite 2
- 再起動と共に自動でRosettaがインストールされる。動いてます。
システム環境設定
64bit/32bitアプリを差別化してますね。(わざとじゃないの?)
32bitアプリの設定をしようとすると、
「○○環境設定パネルを使用するには、”システム環境設定”を終了してから
起動し直す必要があります。」って、なんで一手間必要にしたんだ?
64bit化?買い替え?を促進してるのかもしれないが、再起動する必要は
無いでしょ!って思うんだな。
64bit化カーネルの起動は出来ないのに?
公式サイトの情報ではないが、「6」と「4」を押しながら起動すると
64bitカーネルで起動するらしい、このMacBookは対応してないので
ioreg コマンドで確認しても32bitカーネルで動作中は確認できるが
この状態で32bitアプリを動作させると、USB接続のジョイパッドは
認識できずアプリは異常終了する。しかし「6」と「4」を押さないで起動
すると使える。モードの切り替えが微妙な判定なのかも。
Core2DuoなCPUなので、最初から64bitで動けば良いのにと、
PowerPCから使ってますが、UNIX感覚で途中からMacを使う様になったので
何か変だな!って感じてしまう。ジョイパッドの使用も必須ではないしね。
また、OSXでない、*BSDが恋しくなって来たかも?
備考
- ヨ○バシで購入したら、ポイントカードでの購入を勧められなかった。
(店員によるものなのか知らないが、どっちでも良かったが、とりあえず)
- 因に、別な商品を購入したら、ポイントカードは使用可能と勧められた。
最近のコメント