このブログを検索

2016年9月28日水曜日

焼きリンゴを作る

お買い得のりんごを買ったが、少しボケたりんごだった。それで、煮りんごにしてヨーグルトのトッピングにして味わっていたけど、まだまだ沢山あったので、今度は焼きリンゴにした。

ネットでレシピを調べ、電子レンジ+オーブントースターで作ることに決定。りんごは二つ割りにして高さを抑えるようにアレンジして見た。


芯はギザギザスプーンでくり抜いて、砂糖とバターを少々載せて電子レンジで適当に温める。おっと、りんごの皮に穴を開けるのを忘れていた。爆発したら嫌だから、バターが溶けた処で裏返してフォークでしつこく穴を開けて再度加熱。穴からりんごジュースが汗のように吹き出てくる。

適当な処でオーブントースターに移して10分程焼く。途中でサーモスタットが働いたから焼いた時間は3~4分は短いかも。


そして、シナモンを少々。完成。

冷ましてから試食。初めてのやり方だけどうまく出来た。りんごの甘さが凝縮して美味い。今度は砂糖無しで作ってみようと思う。

2016年9月21日水曜日

ハングル用の辞書を作る

最近、妻と一緒に韓国ドラマを毎日のように見ている。

以前、韓国語の勉強をした事があって 語学の勉強の積りで付き合って見るか、という態度だったけど、韓国と日本の文化の違いや同じ点を発見したり 言葉だけでなく、色々と興味が湧く。

確かに、取り箸を使わずに銘々が自分の箸を鍋に突っ込んだり、女性が立て膝だったりして あれっと思う事もあるが、家の中でも靴を脱がないような欧米のドラマとは違って、殆どの場面で文化面でも心情面でも日本人には全く違和感なく受け入れられる。単に喋っている言葉が異なるだけである。

それで、また韓国語の勉強をやってみたくなった。字幕に頼らずに聞いて分かる部分がちょっとでも増えれば楽しいから。

ハングル入力

私は地道に単語を覚えたりする事は苦手だが、色々と仕掛けを考えるのは大好きだ。韓国語を勉強するとなると、ハングルをパソコンで書けるようにして置きたい、と思って色々と調べた。

日本語の入力には日本語入力メソッドがあるように、韓国語の入力には韓国語入力メソッドがある。これには Windows に元々備わっているものも使えるし、Google Korean Input というものもあるらしい。

しかし、韓国語では もはや漢字は殆ど用いられないから、事実上 ハングルさえ入力出来れば良い。日本語入力のままでハングルが入力出来れば 日本語との混在も楽なのだ。そうすると、日本語の辞書にハングルとその読みを追加する、という方法がある。

読みは最初の文字が半角アルファベットの大文字、残りが半角アルファベットの小文字、という形をとり、アルファベットとハングルの対応は「文化観光部2000年式」に基づく。

「文化観光部2000年式」は、ハングルの読みをアルファベットで表す韓国政府の公式の方法で、韓国中の案内板に書かれているので 覚えておいて損は無い。但し、これは読みを表す方法なので、入力に使うとなると全く同じには出来ない。

それは、ハングルには母音の後にパッチムと呼ばれる子音が付随する場合があるが、そのパッチムの読みには「異なる子音の字母でも同じ読み」となる場合があるからだ。そこで、パッチムの入力コードも母音の前の子音と同じ入力コードを使うように変更する。

ハングルには、最初の子音が18種類、母音が21種類、パッチムが27種類存在する。そして、その組み合わせでハングルの文字の形が定まるので、理屈では(子音とパッチムは無しの場合も含め)全部で (18+1)*21*(27+1)=11,172種類 のハングル文字が存在する事になる。その中で実際には使われていない文字もあるけど、ユニコードではその全てが定義されている。

実は、11,172文字揃った Google日本語入力の辞書用のハングル入力辞書データがネット上に存在していて、有難くダウンロードさせて貰った。しかし、これには著作権は存在しないので、私が自由に改変して公表することも出来る。

辞書を改変する

まず、ᄎ という子音のコード ch について、c も使えるようにデータを追加する。この ᄎ 以外に c は使われていないから h を入力するのは余計な事だとの判断である。今使っているGoogle日本語入力のローマ字変換でも c が ch と同様に使えるようにしているのと合わせたいという気もある。

この改変で 検索と置換 機能で ch を c に変えるだけなら簡単だが、そうすると ch は使えなくなるのでちょっと困る。だから、c 又は C を含んだ行を抜き出してコピーした上でコピーした行の ch を c に、Ch を C に置換しなければならない。

ダウンロードした辞書はGoogleスプレッドシートに入力して加工。コードの先頭にある Ch はソーティングで集まるからコピーは簡単に出来るが、パッチムの ch はコードの先頭には無いから検索で見つけ、その行をコピーし、コピーした行の ch を c に置換する、という作業は手作業になる。それで、幾つかやってみて これでは駄目だと悟った。

それで、簡単に出来るように考えた。要は、c と C を含む行に何か印を付けてそれでソーティングすれば全部が集まるから、コピーして置換するのは一回の操作で済む。

それで、列を一つ増やして、=regexmatch(A1,"[cC]") という関数を一行目に書いた。これを列の最後までコピーすれば、2行目は =regexmatch(A2,"[cC]") というように自動的に数字が置き換えられている。

これで、A列にあるハングル文字コードに c 又は C が含まれている場合は TRUE、含まれてなければ FALSE、という値となり、これでソーティングして、行をコピーし、966行が増えた。因みに、ch を c にしたのが399箇所、Ch を C にしたのが588箇所になる。作業後に関数の列は削除した。

字母も追加

ハングル文字だけならこれでOKだけど、その子音だけ、母音だけ、パッチムだけ、の文字ユニコードで定義されていて、これも欲しい。さっき書いた ᄎ も子音だけの文字なのである。ハングル文字だと 츠 のように必ず母音を含むから、説明上都合の悪い事もあるのだ。

それで、子音、母音、パッチム の字母用のデータを作った。

G独立語1100
Kk独立語1101
N独立語1102
D独立語1103
Tt独立語1104
R独立語1105
M独立語1106
B独立語1107
Pp独立語1108
S独立語1109
Ss独立語110A
X独立語110B
J独立語110C
Jj独立語110D
Ch | C独立語110E
K独立語110F
T独立語1110
P独立語1111
H独立語1112

Xa独立語1161
Xae独立語1162
Xya独立語1163
Xyae独立語1164
Xeo独立語1165
Xe独立語1166
Xyeo独立語1167
Xye独立語1168
Xo独立語1169
Xwa独立語116A
Xwae独立語116B
Xoe独立語116C
Xyo独立語116D
Xu独立語116E
Xwo独立語116F
Xwe独立語1170
Xwi独立語1171
Xyu独立語1172
Xeu独立語1173
Xui独立語1174
Xi独立語1175

Xg独立語11A8
Xgg独立語11A9
Xgs独立語11AA
Xn独立語11AB
Xnj独立語11AC
Xnh独立語11AD
Xd独立語11AE
Xl独立語11AF
Xlg独立語11B0
Xlm独立語11B1
Xlb独立語11B2
Xls独立語11B3
Xlt独立語11B4
Xlp独立語11B5
Xlh独立語11B6
Xm独立語11B7
Xb独立語11B8
Xbs独立語11B9
Xs独立語11BA
Xss独立語11BB
Xng独立語11BC
Xj独立語11BD
Xch | Xc独立語11BE
Xk独立語11BF
Xt独立語11C0
Xp独立語11C1
Xh独立語11C2

表はGoogle日本語入力の辞書に合わせて、一列目は文字コード、二列目は文字、三列目は品詞、四列目はコメント、になっている。品詞は 全部「独立語」とし、コメントには ユニコードの番号を16進数で書いた。

子音のコードはハングル文字のコード(から母音を除いたもの)と同様だが、子音無しを示す ᄋ (「이응」 イウング という名があるけど) をどうするか悩んだ結果、X にした。

母音のコードはハングル文字と同じに出来ない( ᄋ 抜き)ので、頭にXを加えた。

パッチムのコードも子音のコードと区別する必要があり、頭にXを加えた。

これでOKと思いきや、実際にGoogle日本語入力の辞書にインポートしてみると、何故か最後の行が入力されていない。バグなのか仕様なのか不明だが、辞書の最後にダミーの行を追加する事で回避する。因みに、ダミー行として 「こぶり ハングル 辞書」 として置いた。

この改変したGoogle日本語入力用の[ハングル文字辞書ファイル]を公開する。(但し、コメント欄は空白にしてある。)

2016年9月9日金曜日

ローマ字変換テーブル、早くも Ver.2

先日、ほぼ完成と言いながら大幅に変更して、早くも Version 2 となった。

変更したのは、妻からの nn が「ん」にならない代物など使えない、との一言から。自分の理想で変更すると一般の人には使い難いらしい。だから、普通に使う限りGoogle日本語入力のデフォルトの設定と同じ変換結果になるように変更することにした。

それは、自分一人だけで満足しているよりも大勢の人に使って貰えれば、カナ書きについても良い方向に変化していくかも知れないと思ったから。

例えば、/ti/ の表現に「てぃ」が普及しているけど、/si/ の表現は未だに「し」のままで、このままでは sit と shit の区別が付かない。それは rice と lice の取り違え以上に危険なのだ。

未だ普及しないのは、内閣告示の「外来語の表記」というガイドラインに「てぃ」はあるけど、「し」に代わる表現の記載が無いのが原因だと私は思っている。

一部の人は、その表現に「すぃ」を使っているけど、私は「せぃ」を推したい。例えば、「すぃーと」と書いて、sweet なのか seat なのか、「すぃ」なら分からないけど、「せぃ」ならば、「すぃーと」と「せぃーと」に書けるから区別は付く。

/ti/ が「てぃ」という表現になったのは、単に「つ」が /t/ とは異なる音価なので使えないという理由よりも「え」の段と「ぃ」の親和性によるものだと思っている。

そして「すぃ」が一般化する前に、このローマ字変換テーブルが普及していれば「せぃ」の表現を定着させる事が出来るかも知れないと期待する。

カナ書きに適する

さて、Google日本語入力のデフォルトの設定では、「てぃ」の入力方法は thi と t'i の2通りが提供されているが、「すぃ」や「せぃ」の入力方法は提供されず、「す」や「せ」の後に小書きの「ぃ」を自分で加えるしか無い。

その点、私のローマ字変換では、「てぃ」は ty 「すぃ」は swi 「せぃ」は sy と綴るようにしている。英語に於いては、y や w が i や u の代わりを務める場合があるからこの綴りは覚えやすいし、必要なキーの数も少ない。

その他、カナ書きに適する様々な仕掛けを加えたのだが、それでも普通の日本語を入力する使い勝手が同じなら一般の人には魅力が無いだろう。だから、Ver.2 では普通の日本語でも使いやすい点を増やした。

普通の日本語でも使い易い点

まずは、「ん」の入力方法を改善する。今迄は n を一回押すだけで「ん」が入力出来るようにして満足していたけど、その後に母音や「や」行のカナが来る場合に、余分に ' を入れる必要があって面倒だ。やはり、「ん」専用のキーが欲しいので l を割り当てる。 l は押しやすい位置にあり、頻度の高い「ん」の入力には最適だ。l を /r/ と /l/ の書き分けに利用出来なくなるのは残念だが、rx を /l/ の入力キーとして使うことにする。

また、c を「ちゃ」行の入力に割り当てる。「じゃ」行の入力が j なのに、「ちゃ」行の入力には ch とキーの数が増えるのが嫌だという理由だ。ci や ce はイタリア語の読みと同じなので不自然では無いだろう。

2016年9月5日月曜日

音楽ソフトの改竄と著作権

「ピアノの音が出ないよ。」と妻が言ってきた。勿論、音が出るように何とかせよ、との命令である。我が家にはピアノは無いが、MIDIキーボードをパソコンに繋いでピアノの音が出るようにしてある。カルチャースクールで妻がアカペラを習っていて、譜面の音をピアノで確認するのに時々使っているのだ。

MIDI信号の入出力には Domino というMIDIシーケンサーソフトを使い、音源にはVirturalMIDISynth というソフトを使っている。いずれもフリーソフトである。

今迄動いていたのに急に音が出なくなるのには何らかの原因があるはず。心当たりは、Windows10 の無駄なサービスを無効にした事位か。あれこれ調べたり弄ったりしても分からず。そう言えば、最近はブラウザDTMというものもあった。これはソフトを入れずとも、とあるサイトにアクセスするだけで使える代物。MIDIキーボードだって弾ける。

幾つかのサイトでやってみるとちゃんと音が出る。MIDIキーボードとそのドライバーはOK。しかし、Domino からは VirturalMIDISynth が開けないとのエラーメッセージが。

そして、また調べる内に、VirturalMIDISynth の音が出なくなった時には再インストールする、との情報が見つかった。もう一度、インストールプログラムを動かすと Domino のエラーメッセージは消えた。これには思い当たる節がある。

システム管理のツールを集めておく

つまり、ソフトのインストールプログラムで書き換えたレジストリの値を Windows が勝手にシステム更新した時に元の値に戻したらしい。

以前、Windows のアップデートの後で、英語キーボード用のレジストリの設定が勝手に元の値に戻っていた事がある。これからも同じ様な事があるだろう。それに備えて、システム管理というフォルダを作って、そこに設定ファイルやインストールプログラムを集めておいて、すぐに復旧出来るようにした。

PCキーボードの発見

これで、解決かと思ったら、やはり音が出ない。しかし、Domino を弄っていてPCキーボードというものを発見した。これはパソコンのキーを鍵盤に見立ててMIDIデータを入力する為のもの。リアルタイム録音というボタンを押すと出現した。これを使えばパソコンだけでピアノ演奏も可能。ちゃんと音が出て、VirturalMIDISynth の方は解決した。

わざわざMIDIキーボードを繋がなくても良いのだから手軽でいい。複数のキーを同時に押して和音も弾けるし、キーの割当もカスタマイズ出来る。


ハ長調のド、つまり C の音がパソコンのキーの C に割当てられていて、その上のキーの並びは黒鍵になる。これだけでは音域が狭いけど、その上のQWERTYのキーの並びを白鍵、数字のキーの並びを黒鍵に見立てて上下2段の鍵盤とすれば弾きにくいけど音域はかなり広がり、練習すればかなり本格的なピアノ演奏も可能になりそうだ。

それで、割り当てて見たら、惜しい事に R のキーの音が出ない。R は録音開始に割当てられていて変更は出来ないようだった。

こうして遊んでいる内にMIDIキーボードのデータが何故 Domino に入力されないのか、原因が判明した。Domino はMIDIの1chのデータのみを受ける仕様になっているとの記述をネットで発見したのだ。そういえば、音を出すべく色々弄っていてMIDIキーボードのチャンネルセレクタのダイヤルを回したのだった。

これで、無事にMIDIキーボードを演奏してピアノの音が出るようになった。

簡易ピアノソフトを使う

処で、Domino の PCキーボード には問題があったけど、MIDIキーボードを引っ張り出さなくても手軽にピアノを楽しめるのは素晴らしい。そのようなソフトはきっと他にもあるに違いないと思ってネットで検索すると、案の定、色々出てきた。

その中でも一番気に入ったのが TinyPiano というフリーソフト。左右のShiftキーも鍵盤のキーに割り当てて音を出せるのが素晴らしい。その他、Tab と Backspace キーも鍵盤のキーに利用。音域は3オクターブ半もある。


C の音を C のキーに割り当てるのはこの手のソフトのお約束みたいである。画面がシンプルなのは良いが、シンプル過ぎてどう使って良いのか分かり難い。そこで、作者さんには悪いがオリジナルの表示を弄らせて貰う事にした。それで、ヘルプ画面をどうやって出せば良いのかを示す。


そして、これが弄ったプログラム。タイトル行の TinyPiano 以下を書き換えて見た。プログラムはバイナリファイルだが、xedit というフリーのバイナリエディタを使って文字の部分だけを書き換える。一文字は16進数の2桁の数字で表されるから、書き換えたい文字のある部分を捜して、新しい文字をアスキーコードを16進数にして数字を入れ替えて行く。

アスキーコード表はネットでも簡単に見つかる。例えば、Space は0x20、F は0x46、: は0x3a といった具合である。因みに、0x は16進数であることを示すプリフィックスになる。

文字の入れ替えなら何も問題無いけど、この文字を減らしたり増やしたりしたら何が起きるか分からない。例えば、文字数きっちりしかメモリを確保してなければプログラムが暴走するかもしれない。だから、要らない文字があったらスペースに変えておくだけにする。

プログラムと著作権

処で、プログラムは著作権法で保護されている。ソースコードだけでなく、バイナリデータも保護されているので、それを改竄するのは私的使用の場合を除いて違法行為になる。だから、私がこの改竄したプログラムを使うだけなら問題ないが、誰でもダウンロード出来るようにすることは出来ない。

では、このプログラムの画面をブログに載せて大丈夫なのか? という問題が考えられる。慎重に調べた結果、プログラムの画面自体は原則著作権の保護対象外と分かったので載せた。

原則、と書いたのは例外的にプログラム画面自体が「一枚の絵」のような著作物である場合は保護対象になるからである。通常はプログラム画面も単なる製品に過ぎないのだから、保護は無用である。製品に手を加えて(例えばシールでも貼って)著作物の改竄になってしまう、と言うなら大変な事になってしまうから。

やはり限界がある

この TinyPiano は優れたソフトだが、キーを同時に3つ以上押した時に感知されない場合がある。キーの組み合わせによってはそれよりずっと多くのキーを認識してくれるのだが。しかし、これはソフトの問題では無いのだった。この種の他のソフトでも全く同じ問題を持っている。

原因はパソコンキーボードの方にあるのだった。文字を打つ場合、ある瞬間に一つのキーしか押されていない、という前提がある。だから、キーが押されたかどうかを感知するセンサーはキー毎には配置されずに、縦と横のセンサーが受け取る信号の組み合わせでどのキーが押されたかを検出するように設計されている。多数のキーが同時に押されれば検出することが出来なくなる。

やはり本格的な演奏ならMIDIキーボードで、ちょっと音を出したい時にはパソコンキーボードでという使い分けが大事なのだ。

2016年9月4日日曜日

パソコンのメモリを増やす

ThinkPad X250 を使っていて、メモリの事を何も気にせずブラウザのタブを沢山開くと 4GBの残り1割しか空きが無いのに気がついた。

Windows10も製品の名前こそ変えて無いけど、時々システム変更されて、その都度メモリの使用率が高まって来ている気がする。

そろそろメモリを増やすべきか。調べて見ると、8GBのメモリは3500円程で買えるらしい。そんなに安くなって来たのなら悩む程の事はない。それで昨日Amazonで購入したら、お急ぎ便でもないのに今朝届いたので、早速取り付けた。

メモリスロットは一つだけなので、今迄使っていた4GBのメモリが余る…おお、そうだ妻のパソコンThinkPad T410i のメモリをこれで増やせるかもしれない。

T410i のメモリは DDR3 PC3-8500 というタイプ。 X250 に挿してあったのは DDR3L PC3-12800 というタイプ。PC3以下の数字はメモリの速度を示していて、基準よりも速いメモリを使うのは問題が無い。DDR3L の L は低電圧対応も出来る事を示していて、これも問題無い。

それなら使えそうだと思って、T410i の底面にあるメモリスロットのカバーを外して2GBのメモリと交換する。これで全部で6GBになるはずである。しかし、電源を入れてもエラーが起きて動かない。元のメモリに戻すと、Windowsのシステムが一部壊れていたようだったが、自動的に復旧してくれた。

何故動かないのか。ネットで調べると、有り難い事に丁寧な説明があった。5年以上前の初期のCoreiチップだと、メモリチップ8個使った4GBメモリは使えるけど、メモリチップ4個使った4GBメモリは動かない、と書いてある。更に、メモリチップを何個使っているかの情報はメモリの型番からは不明とのこと。

妻のパソコンはその初期のCoreiチップらしく、また、X250から取り外したメモリはメモリチップ4個だったから、動かない原因はまさしくこれだ。

そういう訳で、妻のパソコンのメモリを増やすことは諦めた。しかし、メモリの使用量は X250 や 新しく買った T460s に較べると明らかに小さい。Windows の設定は全部同じ様にしているのに違うのは不思議(画面の画素数の違いかも)だが、当面4GBあれば十分使えるだろう。
後日談: 余っていた4GBのメモリは、娘のパソコンに移植された。娘のパソコンは、元は4GBで メモリスロットの空きが一つあったので 合計8GBになった。

2016年9月1日木曜日

陽母音と陰母音

韓国語を習うと、まず母音に陽母音と陰母音の区别が在ると教わる。この違いが動詞や形容詞の活用の違いなどに繋がるのだから、当然である。

それに、この区别は語感の違いも生んでいる。陽母音が「明るく、小さく、軽い」印象を与えるのに対して、陰母音は「暗く、大きく、重い」印象を与えるのだ。そして、複合母音では陽母音と陰母音の組み合わせは存在しない。

しかし、英語や日本語の事を考えていると、これらの言語でも、文法上の違いこそ無いけれど、やはり陽母音と陰母音の区别が在りそうな気がする。

日本語では、「あ」「え」「い」は陽母音、「お」「う」は陰母音だと思っている。先に挙げた「明るく、小さく、軽い」と「暗く、大きく、重い」の母音がまさにそうだし、その他思い付くだけでも、
  • 陽母音 「きれい」 「かあさん」 「かわいい」 等
  • 陰母音 「ぶす」 「とうさん」 「くさい」 等
そして、日本語でも母音の組み合わせは決して5種*5種=25通り全部が現実的とは言えない。「あい」、「えい(えー)」、「おう(おー)」、辺りは複合母音と言っても良さそうな程に繋がりが良い。その半面、「あう」のような組み合わせは「おう」に変換されたりする。(関西弁では、「買って」が「こうて」となり、「会って」が「おうて」に変化する。)

これは、陽母音と陰母音の組み合わせは日本語でも成立し難い事を示しているのではないだろうか。

そして、これは、個人的な体験だが、中国語を勉強していて duo(多) という言葉を dou(都) と覚えてしまったり、xie(謝) が「シェイ」になったりする。私だけでなく、日本人が謝謝を間違えて「シェイシェイ」って言うのを数多く知っているから、「うお」や「いえ」という母音の組み合わせは日本語には無いに違いない。

「うお」や「いえ」は、陽母音と陰母音の組み合わせでは無いが、口を閉じる方向へ母音が組み合わされる法則が在りそうだ。(あ→え→い 及び お→う の方向のみが成立し、逆は組み合わされない)

そうすると、[si] の音を書き表すのに 「スィ」と書くよりも「セィ」と書いた方が良いのではないか、と考えて見た。英語の [ɪ] は「い」と「え」の中間的な音だから尚更である。city をカナにして、「スティ」と「セティ」ならどっちが原音に近いか考えれば「セィ」に軍配が上がるはず。

しかし、日本語の「さ」行に於ける [s] の音は英語のそれに較べて異質で(「い」の段が異なっているのは周知だけど)、「す」と「せ」を較べれば、母音の音だけでなく子音の質もやはり異なっていると感じる。そして「す」の子音の方が「せ」の子音よりはまだ英語の [s] に近いと思われる。では、「スィ」に決定か、というと、これでは [swi] との区别が付かなくなる(例:「スィート」)、という問題が新たに生じる。

書き分ける、という目的からはやはり「セィ」の方が「スィ」よりも優れているのだった。
このような語感の違いは子音にもある。清音と濁音のペアがそうだ。擬態語だと思い付くだけでも、
  • 清音 「ころころ」 「さくさく」 「からから」 「しつしと」 等
  • 濁音 「ごろごろ」 「ざくざく」 「がらがら」 「じとじと」 等
英語の発音で日本語話者には区别出来ない R と L のペアも同じく L が陽で R が陰の語感を持っている。
  • L light little gold blank 等
  • R dark gravity grave grand break 等
black は L でしょ、なんて例もあって必ずしも当たらないけど、L が 「ら」行で R が「ら゛」行と言った書き分ける決まりがあれば苦労しないのに、と思ったりする。

R が「ら」行という慣行を変えられないなら、いっその事 L を「ら゜」行と表現するのはどうだろう。Wikipediaによると、明治初期にはそうした試みがあったそうで、又、現在でも国語学などでは異音を示すのに使われるとの事。(例: 鼻濁音の「が」を「か゜」で表現)