赤心慶福

talk about rss feed #8

前に書いたような気がするが、ときどき softalkw.exe が途中で発声を中断したままゾンビ化する(通常は発声が終わったらプロセスが終了する)ことがある。

とりあえず、ini ファイルでフックプロセスに対するタイムアウトを指定できるようにして、その時間以上プロセスが生き残っていたら強制的に終了するようにした。デフォルトは 15 分。

さてそれはそれでいいとして、この記事ではアクセントについて考えてみる。前に SofTalk は漢字かな混じり文から読みを得るために MS IME の機能を利用しているのではないか? と考えたが、インストールディレクトリをよく見たらそうではなかった。自前の辞書を持っていて、それにより読みを得ているらしかった。

ほう。

メインとなる dic.stk は 3 万行くらい。客観的に見て、SofTalk は漢字や熟語の読み間違えはかなり多い方だと思うが、そうすると 3 万行の辞書というのは相場的には足りないんだろう。

ところでフィードリーダーでは MeCab を利用して品詞の修正なんかを行っている。それだけではなく、読みも MeCab で得て SofTalk には結果のひらがな列を渡せばいいんじゃない? と思いつくが、しかしそうするとアクセント情報が抜けているので、聞いていて見事なほどに何を言ってるか聞き取れない発声になる。

dic.stk には満遍なく単語のアクセント位置が記述されていて、それが dic.stk の存在意義を高めているのである。

MeCab 側で形態素と一緒にアクセント情報は取れないのかな? 調べてみると、標準でインストールされる IPA 辞書ではなく、UniDic 辞書にはノードごとの核アクセント位置も一緒に記述されているようだ。アクセント情報は単に核アクセント位置だけでなく高アクセントが連続するモーラ数とか品詞の前後関係とか活用で変化するタイプがあるとかもっといろいろ複雑怪奇らしいけど、とりあえず核アクセント位置がわかるだけでも大きい。

でも、UniDic は公式サイトに行ってユーザー登録して住所氏名を入力して…ってやらないと入手できないんだなこれが。フィードリーダーの標準装備にするにはちょっと難しい。

うーん。

SofTalk の dic.stk は単なるテキストファイルで、構造も公開されている。とりあえず漢字列の名詞にしぼって dic.stk になくて UniDic にあるものを抜き出し、アクセント情報を含めた上で SofTalk の辞書構造に構築しなおし、使いたい人はユーザー辞書として使ってね的な感じでアーカイブに納めるようにすればいいのかな? UniDic のライセンス的には問題ないのかな?

* * *

そういうふうにやってみた。もともとの dic.stk が 31756 行なのに対して、126216 行に増えた。増えたのはほとんど名詞だ。動詞はまだ手をつけていない。

どうでもいいけど辞書ファイルのおしりに EOF(^Z)が付いていると softalkw が起動してくれないようだ。

いじっている途中で不思議なことに気が付いた。大相撲の記事で「序の口」を「じょのこう」と読むのが気になる。こうというのは「口」の音読みだ。ところが、dic.stk にはちゃんと「じょのくち」も登録されているのだ。うーん? 何か不思議なルールが絡み合って対象から零れ落ちているのか?

そういう現象があるとすると、単に辞書の登録数を増やしても即賢くはならないのかも…。

talk about rss feed #7talk about rss feed #9