talk about rss feed #7
Monday, January 16, 2012 9:09:27 AM
metaphone は、英単語の基本的な発声の知識をもとに、英発音をコード化するためのアルゴリズム。たとえば -ck は -K と発音する、とか j のうしろに ge、gy、gi が続く場合は J に変化する、とかいうルールに基づいて、単語ごとのキーを生成する。
english、pronounce、昨日の synchrogazer はそれぞれ、ENKLX、PRNNS、SNXRKSR というキーが対応する(X に違和感があるかもしれないが、X は -sh- の発音に対応する。それとアルゴリズムに r の前の ch が K に変化するルールが含まれていないので、ch も sh 扱いになる)。
metaphone のアルゴリズムは、生成の最後に不要な母音をすべて取り除くのだが、取り除かない状態のキーならカタカナを導き出すのに利用できるはず。そこで、metaphone 自体は PHP の組み込み関数として用意されているのだが、車輪の再生産した。といっても単にmb_ereg_replace() しまくるだけなのだが。もちろん、最後の母音削除はしない。
それから、上記の ch - r ルールなどいくつかルールを追加して、それをもとにカタカナを生成させて…おお、できた。ちゃんと synchrogazer もシンクロゲイザーになる。もちろん、基本的な発音のルールから外れた変な単語にはお手上げなのだけど、まあそれなりにそれなりな結果が出る。
ただ単語ごとに mb_ereg_replace() を 60 回近く施すという力技実装なので重い。
ちなみに
2011年5月現在、世界のブラウザシェアで第5位にあるOperaですが、デスクトップ以外のモバイルやゲーム機、テレビなどの家電製品にも組み込まれており、むしろ、そちらでは世界トップに近いシェアを占めています。特に昨年末あたりから開発ペースをあげていて、スマートフォン向けのOpera Miniは、Android版に続いて5月にiPhone版を公開。デスクトップ向けも最新版となるOpera 11.50のベータ版を公開し、新しい機能が試せるようになっています。
Operaの中の人に聞く、ブラウザの未来とは
をそのまま SofTalk に読み上げさせると当然英語部分はおーぴーいーあーるえーじゅういちてんごーぜろ…などとなってしまうのだが、今回作った変換処理を事前に行うことで
2011年5月現在、世界のブラウザシェアで第5位にあるアプラですが、デスクトップ以外のモバイルやゲーム機、テレビなどの家電製品にも組み込まれており、むしろ、そちらでは世界トップに近いシェアを占めています。特に昨年末あたりから開発ペースをあげていて、スマートフォン向けのアプラ/ミニは、アンドロイド版に続いて5月にアイ/フォン版を公開。デスクトップ向けも最新版となるアプラ11.50のベータ版を公開し、新しい機能が試せるようになっています。
という感じに。Opera がアプラなのはまあ、ご愛嬌。とりあえずこれで、英単語混じりまくりのフィードでも変な読み方はしなくなった。


