Phonetica forWord開発秘話
(発音記号を入力するソフト)
2006年3月16日(木)
| ■はじめに: |
| このサイトを開く際に、当時開発したばかりのハングル入力ソフトHanglinがどんな経緯で作られたかを知って頂きたくて「ハングリン開発秘話」を書きましたが、それから数年。いくつかの外国語入力ソフトをつくり、次の方向性を考えていたときに、別のソフトの開発秘話も知りたいとの掲示板の書き込みがあり、ここで今までのソフト開発を振り返るのも大切なことかなと思い、IPA(the International Phonetic Alphabet 国際音声記号) 入力ソフトPhonetica forWordの開発秘話を書かせていただこうと思いました。私どものプログラムがどんな経過で出来て行ったか、興味のおありの方は読んでみてください。 |
| ■きっかけ: |
| 思えば、このソフトを作ろうと決めるまでに3つのきっかけがありました。 最初のきっかけは、私がシェアウエアとして最初に作ったソフト「黒板果実」の最初の1本が売れたとき、その記念として購入したLogman社の「Language Activator」(1993年初版)という英語の辞書でした。この本は語彙の多さを誇タイプ辞書ではなく、中学、高校で習うような基本単語を、実際の生活の場で適切に使えるようになることを目指した用例の多い辞書でした。学習ソフトの例題を作る際に、何度も参照して来ましたが、使っていて疑問に思うことがありました。それは、見出し語の次に記載されている発音表記が日本の英和辞典の記号と違っていた点でした。いくつかの違いがありましたが、特にアクセントの付け方が異なっていました。例えば「〜を除く」という前置詞のexceptは、日本の英和辞典では[iksèpt]ですが、Language Activatorでは[ik'sept]です。これはどこか発音記号の規格を作る団体が最近、表記方法を変えたたのかと思い、1977年の高校生時代に買った英英辞典Oxford Advanced Learners Dictionary of Current Englishを見ると、ほぼLanguage Activatorと同じ[ik`sept]という表記でした。これは手持ちの辞典だけの違いなのかを確認するために、書店に行きましたが、アメリカやイギリスの出版社の英語の辞典の発音表記は、私たちが受験勉強で学んでいるものとは異なっていることが分かりました。当時、この発音記号に関してもう少し詳しく知りたかったのですが、あまり適当な本がなく、疑問だけが残りました。 次のきっかけですが、ロシア語入力ソフトRuscaを開発したときでした。最初のシェアウエアを作ってから、学習ソフトより外国語入力ソフトのほうが需要が多そうでしたので、ハングル入力ソフトHanglinやロシア語入力ミニソフトRuskeyなど開発しましたが、ロシア語に関しては結構しかっかり勉強していたので、もっと本格的な入力ソフトを作ろうと思い、どんな特長を持ったものにするかその構想を練っていました。2000年、ネットでFreeのアクセント記号つきロシア語フォントを発見し、このフォントも使えるようにしたいと考えました。というのも2年間ロシア語教室でロシア人教師に学んだ中で、ロシア語を教えたり、習ったりするにはアクセント記号つき文字が必要だという、信念を持つようになっていたからです。というのもロシア語ではアクセントの位置が発音する上で大きな役目をするからです。例えばアルファベットのоは、アクセントがあるときは「オー」と発音しますが、ないときは「ア」に近くなります。「多い」という副詞のмногоは最初のоにアクセントがあるので「ムノーガ」になります。「ムノーゴ」ではありません。「ハラショー」も文字で書けば「хорошо」で、最後のоにアクセントがあります。ですので初歩の段階ではテキストやプリントにアクセント記号が付かないと何と読むか間違えるからです。ただ、今までロシア語教育に携っている人もこの問題の重要性を認識していて、なんとか解決しているのではないか、そんな疑問を持つようになりました。一方でロシア語はюяиなど英語アルファベットにない母音もあり、フランス語などで用いられているアクサンテギュなどで代用するのも難しいし、ネット検索してもそれらしい記事が見当たりませんでした。そのように思っていたとき、私が以前に勤めていた会社の同僚が、友人に小樽商科大学でロシア語を教えていてコンピューターにも興味を持っている人(匹田 剛先生:現在、東京外国語大学のロシア語学科の助教授)がいる、と紹介してくれました。それで、メールでしたが、ロシア語教育でアクセント記号付きのロシア文字を扱いたい場合どうしているか聞いてみました。そのとき初めて、IPA (the International Phonetic Association)という団体があり、そこが発音記号を定め、SIL(the Summer Institute of Liguistics)という組織では無料のIPAフォントを公開していること。そしてそのフォントのアクセント記号をロシア語フォントの母音字に打って用いているということでした。早速、教えてもらったIPAフォントをダウンロードし、Times New Roman やArialといったフォントでWordにロシア語を打ち込み、その後IPAフォントのアクセント記号を母音字の後ろに入力してみました。すると母音字の上にちゃんとアクセント記号が表示されることが分かりました。世の中広いと思いました。ただ、このIPAのフォントは、外国人の開発したKeymanという入力用のシェアウエアがあるそうですが、少なくとも私のPCではうまくインストールできなかったので、多くの人もこのソフトを使えてないじゃないか。だからせっかくの発音記号フォントも有効に使えてないじゃないか、と思いました。私は、この時点ではまだ発音記号入力ソフトを作る気持ちは持っていなく、空いた時間にこのフォントにどんな文字や記号が登録されているかを調べたり、他のアプリ上でも文字化けせずに使えるかチェックしてみたり遊んでいました。 そしてまた時間が経過し2002年。私どものサイトの掲示板にタイがとても好きな方がタイ語入力ソフトが欲しいというような書き込みをされました。私は、その方の熱意を感じて、その後タイ語入力ソフトを作りました。ここで簡単に「タイ語入力ソフトを作りました」などと書くと簡単そうですが、もともと私自身そんなに外国語が得意なほうではありません。1冊テキストを読んで、外国人に積極的にアプローチして結構外国語を使えるようになるひともいるそうですが、私の場合は、不器用なほうですので、辞典や入門書、単語集といった書籍を何冊か購入し、また一方でLesson CDなどを聞きながら少なくとも1,2ヶ月基礎を勉強するというアプローチをとっていました。タイ語の場合も、はじめはタイ文字もすぐには文字には見えなく、こんな文字を読める人はすごい!と日々思いながら忍耐して勉強続けて、ようやく目が慣れてきて単語や文に見えてくる、そういったペースで取り組んでいました。話は少しずれましたが、なんとか基礎を学び、タイ語入力ソフトKakiThaiを公開してから、ユーザーさんとメールをやりとりする中で、タイ語の発音表記はひとつの大きなテーマであることが分かりました。つまりカタカナ表記した発音どおりにタイで発音しても通じない、ちゃんと国際音声記号を用いた表記が必要、といったものでした。タイ語では有気・無気の区別が単語の意味の区別につながるので、英語と異なります。「CD エクスプレス タイ語」(白水社)を見ても、最初のほうの課では、補助でカタカナ表記はあるものの、声門閉鎖(グロッタルストップ)など欧米の言語ではあまり使われないIPAの発音記号が良く使われます。 英語のみならず外国語を学ぶ際、その発音をカタカナで表記することは確かに入門者には助けになりますが、あくまで導入だけで、しっかり発音を身に付けたい場合、CDなどから得られる音声とIPAの記号を用いた発音表記を身に付けることが、今後大切になるのでは、と思い始めていました。そこで、少し本格的にIPAを調べ、できたら発音記号入力ソフトを作ってみたいと思いはじめてました。 |
| ■まず何をしたか: |
| 発音記号を入力するソフトを作るとなるとこの国際音声記号IPAに関して、もっと知る必要があると思いました。また、公開されているフォントファイルの中身をもっと分析する必要があると思いました。 そこで、まず国際音声記号をもっと知るために書籍をもう一度探してみようと思い、札幌中央図書館に通いました。さすがにIPAをタイトルに含む書籍はありませんでしたが、英語には英語音声学という分野があり、そこでは発音記号を詳しく扱っていることが分かりました。そして、この分野の権威である竹林滋先生の「英語音声学入門」「英語音声学」など借りてきて読みました。「英語音声学」は確か、英語で使われる記号のみならず他の言語で使われる記号についても説明があり、参考になった記憶があります。ただ、もう少し辞典的なものやフォントや文字コードなどコンピューターでの利用も考えた書籍を探していました。そんなとき、掲示板によく来てくださるchiyuさんが下の(1)の図書のことを紹介して下さった記憶があります。そのほか自分でもいくつか新刊を調べて面白そうなものを見つけました。 (1)世界音声記号辞典(ジェフリー・K・プラム他:三省堂:2003年5月12日) (2)国際音声記号ガイドブック(国際音声学会編:大修館書店:2003年3月10日) (3)改訂 音声学入門(小泉 保:大学書林:2003年5月) これらはタイムリーでしたのですぐに書店に電話をし、(1)(2)はともに、購入しました。(2)は先に触れた竹林滋先生の翻訳で、内容も文字コード情報などもあり、とても参考になりました。(3)は、このソフトを開発した際に付けていたノートに「素晴らしい本!」と記載されていたのですが、図書館で入手できたので何度も借りた記憶があります。ただ、いずれの本も外国語を中心にした話題なので読んだだけでは、どの記号がどのような音なのかピンと来ない部分もありました。そこで、日本語を国際音声記号で研究されている方がいないか調べてみました。そうしたら書店で (4)朝倉日本語講座3 音声・音韻 (上野善道編:朝倉書店:2003年6月1日) を発見し、そのなかに「第1章 現代日本語の音声 文節音と音声記号 - 斎藤純男- 」という、まさに自分の知りたい、日本語のさまざまな音をIPAの記号を用いて説明してある章がありました。どの本もPhonetica forWordを作ろうとし始めた2003年に出版された本で、とてもいいタイミングだと思いました。 一方、IPAのフォントをじっくり調べてみようとSILのサイトにアクセスしたら、以前にロシア語のとき調べていたときと異なるバージョンのフォントがアップされていました。これはSILの中に、きちんとフォントを作っている人たちがいてバージョンアップを行っているに違いない、と感心しました。そして、早速、新しいフォントをダウンロードし、このフォントの特徴を調べました。ここで、主だった特徴を挙げておきましょう。 (1)フォントのデザインは3種類。フォントフェース名は、ArialのようなSILSophia IPA93、Times New RomanのようにセリフのあるSILDoulos IPA93、タイプライタのフェースようなCourieに近いSILManuscript IPA93の3種類。 (2)TrueTypeフォントなので、サイズは自由に拡大縮小できる。 (3)アクセント記号など単独では用いられない記号のいくつかが、そのベースとなる文字の横幅や高さに応じて変更できるように複数定義されている。 (4)Windowsに含まれる他のいくつかのフォントに、IPAフォントのアクセント記号を付けることができる。 (5)WORDやWord Padなどリッチテキストの中で使っても文字化けしない。 ここで、(3)の特徴について若干説明をしておきましょう。 アクセント記号の中には鋭アクセント(Acute Accent)という記号があります。フランス語でアクサンテギュというものですね。この記号はIPAフォントでは以下の4つの微妙に違う記号が、別の文字コードで定義されています。 (1)Acute Accent (o-width) ・・・左上 (2)Acute Accent (high o-width) ・・・右上 (3)Acute Accent (i-width) ・・・左下 (4)Acute Accent (high i-width) ・・・右下 この違いを見てもらうために、ベース文字を小文字のoとして、上の4種類の鋭アクセントを打ったものが下の図です。 ![]() この図を見ると左上の組み合わせがバランス的に最も適しています。右上、右下のhighタイプは記号と文字の間に空間がありすぎてしっくりきません。左下のi-widthのアクセントをoに打つとアクセントの位置がやや右寄りになり、これも気になります。一般的に発音記号は英語のアルファベット、ローマ字だけではありませんので、ベースとなる文字の形態によっては小文字でもhighを選ぶ必要があります。ですので、アクセント記号を打とうとした場合、そのベース文字の幅と高さを考え、それらに適した属性を持ったアクセント記号を打つ必要があります。もし、このように直前の文字の縦横がどのタイプかを、いちいち考えながら入力をするとなると、パターンマッチングを行うわけですから結構大変になると思われました。 |
| ■開発目標の策定: |
| このアクセント記号などを、そのベースとなる文字の形態に応じて選べるようにしたフォント作者たちの意図は、おそらく美しさの追求だと思います。SILDoulos
IPA93フォント自体とても美しいフォントですが、アクセント記号を付加した場合もバランスが美しくなるように設計したのだと思います。私は、フォント作成者のそのような心意気に感心し、このフォントを入力するソフトを作ることは価値があると直感的に思いました。 そこで、このソフトならではの開発目標を考えました。そしして、その結果以下の4項目を盛り込もうと思いました。 (1) 記号の意味、どのように発音するかなどコメントを容易に参照、編集できるようにする。 (2) 文字や記号を軽快に入力できるようにする。 (3) 英語圏の人も使えるように、インターフェースを英語と日本語で切り替えられるようにする。 (4) Webサイトでの利用も考慮し、画像出力機能を加える。 順に簡単にご説明したいと思います。 (1) 記号の意味、どのように発音するかなどコメントを容易に参照、編集できるようにする。 記号の呼び名、その記号がどのような音を表すか、そしてその音を出すための口や歯や舌の位置、喉などの使い方などは決まっていますが、ロシア語やタイ語やアラビア語など扱う言語で、重要視される記号は、それぞれ異なります。日本語で発音する場合の例を引いた場合のほうが分かりやすい場合もあります。ですので、ユーザーさん自身が記号にコメントを容易に付け加えられ、編集できることが必要だと思いました。 (2) 文字や記号を軽快に入力できるようにする。 IPAフォントは、かなり多くの文字と記号を収容しています。ですので、IMEPadのように文字コード表から1つ1つ入力したい文字を見つけてマウスでクリックして入力するのは、とても時間がかかりますし、目も疲れます。そこで、キーボードで入力でき、なおかつ入力間違いがないように入力しようとする文字が比較的大きな字で確認できるようなインターフェースが必要と思いました。 また、このIPAフォントは、先にも触れましたが、アクセント記号や補助記号が、ベース文字の形態に応じて複数用意されていますので、いちいちユーザーさんがこの文字は幅がo-widthかii-width、高さは highか標準か判断しなくてもいいように各ベース文字ごとにあらかじめ高さと幅を求め、それをテーブル化し、アクセント記号や補助記号は自動的に適切なものが選べる仕組みが必要と思いました。 (3) 英語圏の人も使えるように、インターフェースを英語と日本語で切り替えられるようにする。 小説や本は、英語に翻訳すると読者が何倍にも増えるとD.カーネギーの本に書いてありました。それで、シェアウエアも英語化すればユーザーが増えるかと思い、いつかはメニューやメッセージなどソフトのインターフェースを英語と日本語に切り替えられるソフトを作ってみたいと思っておりました。それで、今回発音記号なら日本人ならずとも多くの人が文章の中で使いたいと思うのではないかと思い、今回のソフト開発では英語Windowsなどでも使えるように、インターフェースを英語と日本語で切り替えられるようにしたいと思いました。 (4) Webサイトでの利用も考慮し、画像出力機能を加える。 IPAフォントがインストールされているパソコンであれば、WEBページでも、実はフォントタグやスタイルシートを使いフォントフェースを指定すればIPA記号を文字化けせず表示できますが、IPAフォントがインストールされていないパソコンでは文字化けしてしまいます。多くのパソコンにIPAフォントがインストールされていないことを考えると、発音記号を使ったWEBページを作るには画像を使うほうが無難です。そこで、文字色と背景色を自由に指定可能な画像出力できるようにしようと思いました。画像の形式は本来GIF画像が便利なのですが、開発当初、GIFはユニシスの知的財産権に触れる恐れがあったので、ビットマップで出力するものとしました。 |
| ■工夫のしどころ: |
| Phonetica forWordの最大の工夫のしどころは開発目標(2)の軽快に入力できるインターフェースでした。 とにかく、IPAフォントは、あまり見慣れていなかったり、似ていたりしている文字や記号が多いですから、グルーピングして、漢字変換のように候補を表示してユーザーに選んでもらうインターフェースが適していると思いました。幸いにもフォント付属のドキュメントと「国際音声記号ガイドブック」では文字や記号を、多少の違いがありますがアルファベット分類した順に並べて説明しているページがありましたので、それらを基準に、まずはベース文字のアルファベット分類をしました。1つの分類に含まれる文字の最大個数は8だったので、何かの補足に1個分とっておくとしても数字の1から9までの数字を使って、候補から入力文字を選ぶインターフェースができると思いました。記号についても、 [ : ]に似た英語の伸ばす音や第一強勢、第2強勢など単独で用いられるものと、アクセント記号や無声音をあらわす小さな丸印などベース文字とともに用いられるもの、声調を表す特殊な記号など分類分けが可能ですので、ベース文字の候補の最大個数9つを条件として、いくつかに分類しました。 記号の分類が終わり、いよいよプログラミングに手を付けました。最初、アルファベットの小文字を押したら候補を表示し、その中から数字キーを押して文字や記号を入力するインターフェースを持つ記号入力機を作りました。その際、直前に入力された文字も記憶しておき、次の文字がアクセント記号などの場合は、候補を表示する際のベース文字も直前の文字で切り替えるようにしました。もちろん、ベース文字ごとにその縦横の大きさをあらかじめ調べ、アクセント記号などo-width, i-width,high,normalなど自動的に選ぶ仕組みも作りこみました。 そして、英語の辞典に出てくる発音記号をいろいろ手当たり次第打ってみました。なるほど、受験の際に苦労して覚えた発音記号を自由に打てることは喜びでした。あの上下の歯に舌を挟んでtheaterと言う場合の発音記号やeがさかさまになった文字などすべて打つことが出来ました。次にタイ語のテキストに出てくる発音記号も打ってみました。英語ではほとんど使わない?マークに似た声門閉鎖(グロッタルストップ)記号も、mをさかさまにしたような口を横に開いてウと発音する音などすべて入力できました。これは外国語の発音表記に役立つな、と思いました。 ただ、ローマ字の小文字で候補を出して選ぶという方法は、キーストロークが多くて、少し疲れる感じがしました。そこで、何か改良できないか見直したのですが、まず発音記号は、やはりローマ字の小文字が多いことに気が付きました。それとプロトタイプを作るまで気づかなかったのですが、IPAフォントには英語のアルファベットの大文字が定められていませんでした。これは発音記号として大文字は使われないわけではないのですが、やはり使用頻度が低かったり、一部の分野に限られるようで、このIPAフォントには含めなかったのだろうと思います。それで、ローマ字の小文字はそのままキーボード入力でき、それ以外の記号はシフトキーを押しながら(ローマ字の大文字)を押したときに候補が出る仕組みがいいのでは、と思い改良しました。そうしたら、結構滑らかに入力できるようになり、この方式を完成版には組み込もうと決めました。 |
| ■完成: |
| このソフトのコアの部分はできましたが、開発目標で掲げた英語と日本語でインターフェースを切り替えられるようにするのはなかなか大変でした。英語でソフトを作る場合のメニューやメッセージがどのように記載するのか、今まで音楽編集ソフトであるCoolEditくらいしか英語版は使ったことがなかったので、早速アメリカのシェアウエアやフリーウエアを集めました。そして、ノートに慣用的な表現を抜き出してゆきました。それとライセンスやドキュメントを英語化する準備をしました。今まで外国語を扱うソフトウエアを作ってきたのに、なかなか適切な英語が出てきません。図書館で技術者のための英文マニュアルの書き方、といったタイプの本も借りてきて文をノートに集めました。はっきり言ってプログラムを作るよりインターフェースやドキュメントを英語化するほうが10倍は大変だと思いました。 そんなわけで、なんとかPhonetica forWordを完成させました。当時の業務日誌を見ると2003年8月4日の15:00頃公開開始して、その日に1本、次の日も1本、Vectorでシェアレジが使えるようになる前に7本も売れていました。その後も3,4日に1本くらいの割合で出ていました。このソフトは、実家の家の建替えと同時進行で作ったソフトでしたので私自身、印象深いソフトとなりました。 2006年になった今、SILではIPA93フォントも進化してUnicode版の発音記号フォントがまたバージョンアップを続けています。私も2年くらい前からUnicode対応ソフトが作れるように開発言語を変え、準備をして来ました。今後マイクロソフトのWindowsの中にIPA準拠の発音記号を含むフォントが標準で含まれるようになれば皆が便利になると思います。今後も、それらのフォントやOSの動きを横目で見ながら、Phonetica forWordも進化させてゆきたいと考えています。 以上です。 |